{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "557ccd99-c8fa-4ce0-949e-d8b2d627bbf0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from scipy import signal, fft\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from keras.models import Sequential  # 用于构建序贯模型\n",
    "from keras.layers import Conv1D,Dense,ZeroPadding1D,MaxPooling2D,AveragePooling1D,Dropout,Flatten  # 用于构建不同类型的网络层"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "360b1334-23f6-455a-9eb0-59243958dda0",
   "metadata": {},
   "source": [
    "## 一、数据加载与预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e0f9e55f-330a-48c9-b7ba-7692541690d3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "导入了 2916 个动作数据样本，每个动作样本有 2秒×64Hz×3轴 个数据\n"
     ]
    }
   ],
   "source": [
    "# 创建一个空列表来存储所有数据\n",
    "total_data = []\n",
    "\n",
    "# 设定标准的数据行数为 128 行  \n",
    "STANDARD_ROWS = 128\n",
    "\n",
    "# 初始化滤波器\n",
    "b, a = signal.butter(8, 0.2, 'lowpass')\n",
    "\n",
    "lab_i = 0\n",
    "\n",
    "# 遍历文件夹\n",
    "for folder in os.listdir('rawData'):\n",
    "    # 通过正则表达式判断文件夹名是否是字母和数字的组合\n",
    "    if folder.isalnum():\n",
    "        # print(\"folder name:%c, label:%d\"%(folder, lab_i))\n",
    "        # 拼接完整的文件夹路径  \n",
    "        folder_path = os.path.join('rawData', folder)\n",
    "        # 遍历文件夹中的文件\n",
    "        for file in os.listdir(folder_path):\n",
    "            if file.endswith('.csv'):  # 确保只处理csv文件\n",
    "                # 获取文件的标签（文件夹名）\n",
    "                label = lab_i\n",
    "\n",
    "                # 读取csv文件\n",
    "                df = pd.read_csv(os.path.join(folder_path, file))\n",
    "\n",
    "                # 检查数据行数，处理异常情况  \n",
    "                rows = df.shape[0]  # 获取数据行数  \n",
    "                if rows < STANDARD_ROWS:  # 数据行数少于128行  \n",
    "                    # 将缺少的数据补零  \n",
    "                    df = df.append(pd.DataFrame(0, index=range(rows, STANDARD_ROWS), columns=df.columns))  \n",
    "                elif rows > STANDARD_ROWS:  # 数据行数多于128行  \n",
    "                    # 忽略多余的数据  \n",
    "                    df = df[:STANDARD_ROWS]\n",
    "\n",
    "                # 将每行三个数据分别命名为gx，gy，gz 并滤波处理\n",
    "                # gx = signal.filtfilt(b, a, df.iloc[:, 0].tolist())\n",
    "                # gy = signal.filtfilt(b, a, df.iloc[:, 1].tolist())\n",
    "                # gz = signal.filtfilt(b, a, df.iloc[:, 2].tolist())\n",
    "\n",
    "                # 不滤波处理\n",
    "                gx = df.iloc[:, 0].tolist()\n",
    "                gy = df.iloc[:, 1].tolist()\n",
    "                gz = df.iloc[:, 2].tolist()\n",
    "\n",
    "                # 使用np.dstack重新组织数据，并reshape为(128, 3)的形状\n",
    "                data = np.dstack((gx, gy, gz)).reshape((128, 3))  # 128 datapoints with 3 channels\n",
    "\n",
    "                # 将处理后的数据和标签添加到total_data列表中\n",
    "                total_data.append((data, label))\n",
    "        lab_i = lab_i+1\n",
    "\n",
    "print(f\"导入了 {np.array(total_data, dtype=object).shape[0]} 个动作数据样本，每个动作样本有 2秒×64Hz×3轴 个数据\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9cf1779b-599d-418d-b59c-5f92b182b9c0",
   "metadata": {},
   "source": [
    "## 二、数据集分割\n",
    "> 训练集：60%  \n",
    "> 验证集：20%  \n",
    "> 测试集：20%"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "efb446ff-6756-4804-9148-27ed5e83f24a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train data shpae is  (1749, 128, 3)\n",
      "Train label shpae is  (1749, 1)\n",
      "Validation data shpae is  (584, 128, 3)\n",
      "Validation label shpae is  (584, 1)\n",
      "Test data shpae is  (583, 128, 3)\n",
      "Test label shpae is  (583, 1)\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(25682568)\n",
    "np.random.shuffle(total_data)  # 打乱数据集\n",
    "train = total_data[0:1749]  # 60%\n",
    "val = total_data[1749:2333]  # 20%\n",
    "test = total_data[2333:2916]  # 20%\n",
    "test_data = []\n",
    "test_label = []\n",
    "train_data = []\n",
    "train_label = []\n",
    "val_data = []\n",
    "val_label = []\n",
    "\n",
    "for i in range(len(test)):\n",
    "    test_data.append(test[i][0])\n",
    "    test_label.append([test[i][1]])\n",
    "for i in range(len(train)):\n",
    "    train_data.append(train[i][0])\n",
    "    train_label.append([train[i][1]])\n",
    "for i in range(len(val)):\n",
    "    val_data.append(val[i][0])\n",
    "    val_label.append([val[i][1]])\n",
    "test_data=np.array(test_data)\n",
    "test_label=np.array(test_label)\n",
    "train_data=np.array(train_data)\n",
    "train_label=np.array(train_label)\n",
    "val_data=np.array(val_data)\n",
    "val_label=np.array(val_label)\n",
    "print(\"Train data shpae is \",train_data.shape,)\n",
    "print(\"Train label shpae is \",train_label.shape,)\n",
    "print(\"Validation data shpae is \",val_data.shape,)\n",
    "print(\"Validation label shpae is \",val_label.shape,)\n",
    "print(\"Test data shpae is \",test_data.shape,)\n",
    "print(\"Test label shpae is \",test_label.shape,)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b7099c9-2047-4255-9f5f-6b4de225fd2e",
   "metadata": {},
   "source": [
    "## 三、数据集分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "71752e7c-9ded-4489-8399-335828a5261a",
   "metadata": {},
   "outputs": [],
   "source": [
    "def class_breakdown(data):\n",
    "    # convert the numpy array into a dataframe\n",
    "    df = pd.DataFrame(data)\n",
    "# group data by the class value and calculate the number of rows\n",
    "    counts = df.groupby(0).size()\n",
    "# retrieve raw rows\n",
    "    counts = counts.values\n",
    "# summarize\n",
    "    for i in range(len(counts)):\n",
    "        percent = counts[i] / len(df) * 100\n",
    "        print('Class=%d, total=%d, percentage=%.3f' % (i+1, counts[i], percent))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8f12e678-ed97-4257-a2ac-ccbc30041af7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train set:\n",
      "Class=1, total=52, percentage=2.973\n",
      "Class=2, total=46, percentage=2.630\n",
      "Class=3, total=46, percentage=2.630\n",
      "Class=4, total=49, percentage=2.802\n",
      "Class=5, total=47, percentage=2.687\n",
      "Class=6, total=45, percentage=2.573\n",
      "Class=7, total=56, percentage=3.202\n",
      "Class=8, total=55, percentage=3.145\n",
      "Class=9, total=49, percentage=2.802\n",
      "Class=10, total=43, percentage=2.459\n",
      "Class=11, total=51, percentage=2.916\n",
      "Class=12, total=54, percentage=3.087\n",
      "Class=13, total=47, percentage=2.687\n",
      "Class=14, total=53, percentage=3.030\n",
      "Class=15, total=48, percentage=2.744\n",
      "Class=16, total=44, percentage=2.516\n",
      "Class=17, total=48, percentage=2.744\n",
      "Class=18, total=40, percentage=2.287\n",
      "Class=19, total=47, percentage=2.687\n",
      "Class=20, total=44, percentage=2.516\n",
      "Class=21, total=48, percentage=2.744\n",
      "Class=22, total=62, percentage=3.545\n",
      "Class=23, total=44, percentage=2.516\n",
      "Class=24, total=51, percentage=2.916\n",
      "Class=25, total=49, percentage=2.802\n",
      "Class=26, total=50, percentage=2.859\n",
      "Class=27, total=51, percentage=2.916\n",
      "Class=28, total=46, percentage=2.630\n",
      "Class=29, total=42, percentage=2.401\n",
      "Class=30, total=64, percentage=3.659\n",
      "Class=31, total=48, percentage=2.744\n",
      "Class=32, total=40, percentage=2.287\n",
      "Class=33, total=48, percentage=2.744\n",
      "Class=34, total=48, percentage=2.744\n",
      "Class=35, total=47, percentage=2.687\n",
      "Class=36, total=47, percentage=2.687\n",
      "\n",
      "Validation set:\n",
      "Class=1, total=16, percentage=2.740\n",
      "Class=2, total=23, percentage=3.938\n",
      "Class=3, total=16, percentage=2.740\n",
      "Class=4, total=17, percentage=2.911\n",
      "Class=5, total=14, percentage=2.397\n",
      "Class=6, total=20, percentage=3.425\n",
      "Class=7, total=10, percentage=1.712\n",
      "Class=8, total=16, percentage=2.740\n",
      "Class=9, total=15, percentage=2.568\n",
      "Class=10, total=24, percentage=4.110\n",
      "Class=11, total=19, percentage=3.253\n",
      "Class=12, total=11, percentage=1.884\n",
      "Class=13, total=16, percentage=2.740\n",
      "Class=14, total=14, percentage=2.397\n",
      "Class=15, total=16, percentage=2.740\n",
      "Class=16, total=20, percentage=3.425\n",
      "Class=17, total=17, percentage=2.911\n",
      "Class=18, total=17, percentage=2.911\n",
      "Class=19, total=15, percentage=2.568\n",
      "Class=20, total=22, percentage=3.767\n",
      "Class=21, total=19, percentage=3.253\n",
      "Class=22, total=7, percentage=1.199\n",
      "Class=23, total=15, percentage=2.568\n",
      "Class=24, total=17, percentage=2.911\n",
      "Class=25, total=18, percentage=3.082\n",
      "Class=26, total=14, percentage=2.397\n",
      "Class=27, total=12, percentage=2.055\n",
      "Class=28, total=13, percentage=2.226\n",
      "Class=29, total=19, percentage=3.253\n",
      "Class=30, total=10, percentage=1.712\n",
      "Class=31, total=22, percentage=3.767\n",
      "Class=32, total=20, percentage=3.425\n",
      "Class=33, total=18, percentage=3.082\n",
      "Class=34, total=12, percentage=2.055\n",
      "Class=35, total=18, percentage=3.082\n",
      "Class=36, total=12, percentage=2.055\n",
      "\n",
      "Test set:\n",
      "Class=1, total=13, percentage=2.230\n",
      "Class=2, total=12, percentage=2.058\n",
      "Class=3, total=19, percentage=3.259\n",
      "Class=4, total=15, percentage=2.573\n",
      "Class=5, total=20, percentage=3.431\n",
      "Class=6, total=16, percentage=2.744\n",
      "Class=7, total=15, percentage=2.573\n",
      "Class=8, total=10, percentage=1.715\n",
      "Class=9, total=17, percentage=2.916\n",
      "Class=10, total=14, percentage=2.401\n",
      "Class=11, total=11, percentage=1.887\n",
      "Class=12, total=16, percentage=2.744\n",
      "Class=13, total=18, percentage=3.087\n",
      "Class=14, total=14, percentage=2.401\n",
      "Class=15, total=17, percentage=2.916\n",
      "Class=16, total=17, percentage=2.916\n",
      "Class=17, total=16, percentage=2.744\n",
      "Class=18, total=24, percentage=4.117\n",
      "Class=19, total=19, percentage=3.259\n",
      "Class=20, total=15, percentage=2.573\n",
      "Class=21, total=14, percentage=2.401\n",
      "Class=22, total=12, percentage=2.058\n",
      "Class=23, total=22, percentage=3.774\n",
      "Class=24, total=13, percentage=2.230\n",
      "Class=25, total=14, percentage=2.401\n",
      "Class=26, total=17, percentage=2.916\n",
      "Class=27, total=18, percentage=3.087\n",
      "Class=28, total=22, percentage=3.774\n",
      "Class=29, total=20, percentage=3.431\n",
      "Class=30, total=7, percentage=1.201\n",
      "Class=31, total=11, percentage=1.887\n",
      "Class=32, total=21, percentage=3.602\n",
      "Class=33, total=15, percentage=2.573\n",
      "Class=34, total=21, percentage=3.602\n",
      "Class=35, total=16, percentage=2.744\n",
      "Class=36, total=22, percentage=3.774\n"
     ]
    }
   ],
   "source": [
    "print(\"Train set:\")\n",
    "class_breakdown(train_label)\n",
    "print(\"\")\n",
    "\n",
    "print(\"Validation set:\")\n",
    "class_breakdown(val_label)\n",
    "print(\"\")\n",
    "\n",
    "print(\"Test set:\")\n",
    "class_breakdown(test_label)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "094229d6-f385-4662-837a-737a94e2bab5",
   "metadata": {},
   "source": [
    "## 四、标签 one-hot 编码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "76fe7887-f444-4f80-811f-baf780f39de0",
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow.keras.utils import to_categorical\n",
    "\n",
    "test_label = to_categorical(test_label)\n",
    "train_label = to_categorical(train_label)\n",
    "val_label = to_categorical(val_label)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4f4805d3-8334-4504-a9f4-bbd7d64eb9d2",
   "metadata": {},
   "source": [
    "> 以下 cell 为测试部分，可忽略"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e4a2397c-0085-453e-a96f-c7c7d407ef7b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
      "  0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
      "  0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
      "  0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]\n",
      "[-286, -168, -148, -134, -117, -91, -89, -122, -199, -234, -349, -531, -630, -751, -735, -710, -612, -247, -26, 53, 211, 278, 378, 362, 292, 180, 52, -234, -326, -343, -274, -145, -64, -20, 31, 66, 151, 189, 157, 16, -8, -2, -87, -298, -419, -441, -426, -411, -425, -466, -531, -419, -330, -32, 72, 193, 228, 245, 248, 207, 114, 28, -96, -164, -394, -611, -673, -634, -653, -878, -1095, -1032, -630, -380, -3, -16, -36, 104, 490, 719, 1037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n",
      "128\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAGdCAYAAAAWp6lMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWqUlEQVR4nO3deZhT9fk3/vfJOmtmX2GAAZF12HUcxa1SEHlsrdYqpZZaq48WqkLrQmuR1lqsVq1aql9trfYp1uX3rRsudUTFKgPIMuw7yAAzmWHWZLas5/dHck6S2UhmkpyT5P26rrnqTM4kJ6dMcue+78/9EURRFEFEREQUxzRKnwARERFRpDHgISIiorjHgIeIiIjiHgMeIiIiinsMeIiIiCjuMeAhIiKiuMeAh4iIiOIeAx4iIiKKezqlT0AN3G43amtrkZ6eDkEQlD4dIiIiCoIoirBarSguLoZGM3AOhwEPgNraWpSUlCh9GkRERDQIJ0+exPDhwwc8hgEPgPT0dACeC2YymRQ+GyIiIgqGxWJBSUmJ/D4+EAY8gFzGMplMDHiIiIhiTDDtKGxaJiIiorjHgIeIiIjiHgMeIiIiinsMeIiIiCjuMeAhIiKiuMeAh4iIiOIeAx4iIiKKewx4iIiIKO4x4CEiIqK4x4CHiIiI4h4DHiIiIop7DHiIiIgo7jHgISKKE58eaMDb1aeVPg0iVeJu6UREccDtFrHkle3ocrhw6bl5yEwxKH1KRKrCDA8RURyw2pzotLsgikC7zan06RCpTkQDns8//xxXX301iouLIQgC3nrrrYDbRVHEypUrUVRUhOTkZMyZMweHDx8OOKa5uRmLFi2CyWRCZmYmbrnlFrS3twccs2vXLlx88cVISkpCSUkJHn300Ug+LSIi1WnttMv/7XSJCp4JkTpFNODp6OjA1KlTsWbNmj5vf/TRR/H000/jueeew+bNm5Gamop58+ahu7tbPmbRokXYu3cvKisrsW7dOnz++ee47bbb5NstFgvmzp2LkSNHYtu2bXjsscewatUqPP/885F8akREqtLa6ZD/2+FyK3gmROoU0R6e+fPnY/78+X3eJooi/vSnP+GBBx7At7/9bQDAP/7xDxQUFOCtt97CjTfeiP379+PDDz/EV199hVmzZgEAnnnmGVx11VX44x//iOLiYqxduxZ2ux0vvvgiDAYDJk2ahOrqajzxxBMBgRERUTxr7fIPeJjhIepJsR6e48ePw2w2Y86cOfLPMjIyUF5ejqqqKgBAVVUVMjMz5WAHAObMmQONRoPNmzfLx1xyySUwGHwNevPmzcPBgwfR0tLS52PbbDZYLJaALyKiWOZf0mKGh6g3xQIes9kMACgoKAj4eUFBgXyb2WxGfn5+wO06nQ7Z2dkBx/R1H/6P0dPq1auRkZEhf5WUlAz9CRERKajNL8PjdDPgIeopIVdprVixAm1tbfLXyZMnlT4lIqIh8e/hsTtZ0iLqSbGAp7CwEABQX18f8PP6+nr5tsLCQjQ0NATc7nQ60dzcHHBMX/fh/xg9GY1GmEymgC8ioljmH/Aww0PUm2IBT2lpKQoLC7F+/Xr5ZxaLBZs3b0ZFRQUAoKKiAq2trdi2bZt8zCeffAK3243y8nL5mM8//xwOh++PvbKyEuPGjUNWVlaUng0RkbLYw0M0sIgGPO3t7aiurkZ1dTUAT6NydXU1ampqIAgC7r77bvzud7/DO++8g927d+OHP/whiouLcc011wAAJkyYgCuvvBK33nortmzZgi+//BJLly7FjTfeiOLiYgDA97//fRgMBtxyyy3Yu3cvXnvtNTz11FNYvnx5JJ8aEZGq+K/SYkmLqLeILkvfunUrLr/8cvl7KQhZvHgxXnrpJdx7773o6OjAbbfdhtbWVsyePRsffvghkpKS5N9Zu3Ytli5diiuuuAIajQbXXXcdnn76afn2jIwMfPTRR1iyZAlmzpyJ3NxcrFy5kkvSiSihBAweZEmLqBdBFMWE/yhgsViQkZGBtrY29vMQUUz6xuOf4diZDgDAkzdMxXemD1f4jIgiL5T374RcpUVEFG/aOjl4kGggDHiIiGKcKIo9Ji2zpEXUEwMeIqIY125zwuX2ZXW4eShRbwx4iIhinP8MHoAZHqK+MOAhIopxvQMeZniIemLAQ0QU41q77AHfM8ND1BsDHiKiGMeSFtHZMeAhIopx/iu0AJa0iPrCgIeIKMa1dbKkRXQ2DHiIiGJcz5KWkwEPUS8MeIiIYlyLN+BJ1msBAHaWtIh6YcBDRBTj2ryrtPLSjQCY4SHqCwMeIqIYJ5W0pICHPTxEvTHgISKKcdIqrbw0KeBhSYuoJwY8REQxTsrw5KYbADDDQ9QXBjxERDFMFEVfD09aEgAGPER9YcBDRBTDOu0uuYQlZXicbpa0iHpiwENEFMNavEMHDVoNTEl6AIDdyQwPUU8MeIiIYpjUv5ORoode63lJZ4aHqDcGPEREMazNu0IrK0UPg04AwB4eor4w4CEiimFShicz2SBneLgsnag3BjxERDGs1btCKyNFD51GCniY4SHqiQEPEVEM82V4WNIiGggDHiKiGCb18GT6ZXicLGkR9cKAh4gohrV0eEpamSm+Hh47MzxEvTDgISKKYdI+WhnJeui1npIWd0sn6o0BDxFRDGvrlJalc5UW0UAY8BARxTBplVZmih46LZuWifrDgIeIKIbJk5aT9TBouSydqD8MeIiIYpQoinIPT6bf1hJuEXBxewmiAAx4iIhiVLfDLW8UmplikEtaALM8RD0x4CEiilHSTuk6jYBUg1bO8AAMeIh6YsBDRBSj5CnLKXoIghAQ8HD4IFEgBjxERDHKt0LLAADQagRovFUtZniIAjHgISKKUW1++2hJdNJKLTYtEwVgwENEFKP8V2hJ5KXpTmZ4iPwx4CEiilG+GTwG+WfSSi2nmwEPkT8GPEREMaq10zdlWSJvIOpkSYvIHwMeIqIY1WC1AQDy0o3yzzhtmahvDHiIiGJUg7UbAJDvF/CwpEXUNwY8REQxqsHiyfDkpyfJP2NJi6hvDHiIiGKUVNLKN/lleDTM8BD1hQEPEVEM6na40OZdlu5f0jLo2MND1BcGPEREMeiMN7tj0GmQ4T940JvhcXBrCaIADHiIiGKQf8OyIPh2SddzlRZRnxjwEBHFIF/DsjHg51LAw81DiQIx4CEiikFyw7LfCi0A0HuXpduZ4SEKwICHiCgG1Vu8JS1T3xkelrSIAjHgISKKQVKGp8DUM8PDkhZRXxjwEBHFoL62lQB8JS1meIgCMeAhIopBDZbe20oAgE4uaTHDQ+SPAQ8RUQw602/TMnt4iPrCgIeIKMY4XG40ddgB9NW07N1aggEPUQAGPEREMUbK7ug0ArJTDAG3yZuHsqRFFIABDxFRjPFvWNZohIDbdMzwEPWJAQ8RUYzpr2EZAAzs4SHqEwMeIqIY48vwJPW6jSUtor4x4CEiijHythKm3hkelrSI+saAh4goxkglrYI+MjwsaRH1jQEPEVGMGTDD421idrhZ0iLyx4CHiCjGNFj7b1rW67wZHiczPET+GPAQEcWYBkvfU5YBQK/xbh7KDA9RAAY8REQxxOUW0djef0lLr+PmoUR9YcBDRBRDmtptcIuAIAA5qYZet+u8GR47S1pEARjwEBHFEKlhOTfNKO+M7k+aw8OSFlEgBjxERDFkoIZlADCwpEXUJwY8REQxxNew3HfAI5W0HJy0TBSAAQ8RUQyRZ/D0sUIL8JW0mOEhCqR4wLNq1SoIghDwNX78ePn27u5uLFmyBDk5OUhLS8N1112H+vr6gPuoqanBggULkJKSgvz8fNxzzz1wOp3RfipERBEnl7T6WKEFAHpuLUHUJ53SJwAAkyZNwscffyx/r9P5TmvZsmV477338MYbbyAjIwNLly7Ftddeiy+//BIA4HK5sGDBAhQWFmLjxo2oq6vDD3/4Q+j1evz+97+P+nMhIoqkeqmkZTpbhoclLSJ/qgh4dDodCgsLe/28ra0Nf/vb3/DKK6/gG9/4BgDg73//OyZMmIBNmzbhggsuwEcffYR9+/bh448/RkFBAaZNm4aHHnoI9913H1atWgWDofeyTSKiWOUrafXTw6Nl0zJRXxQvaQHA4cOHUVxcjNGjR2PRokWoqakBAGzbtg0OhwNz5syRjx0/fjxGjBiBqqoqAEBVVRXKyspQUFAgHzNv3jxYLBbs3bu3z8ez2WywWCwBX0REseCM5SyrtNjDQ9QnxQOe8vJyvPTSS/jwww/x7LPP4vjx47j44othtVphNpthMBiQmZkZ8DsFBQUwm80AALPZHBDsSLdLt/Vl9erVyMjIkL9KSkrC/8SIiMJMFEWcaR+4pKVjSYuoT4qXtObPny//95QpU1BeXo6RI0fi9ddfR3JyckQec8WKFVi+fLn8vcViYdBDRKrX2umQA5m8tIGblpnhIQqkeIanp8zMTJx77rk4cuQICgsLYbfb0draGnBMfX293PNTWFjYa9WW9H1ffUEAYDQaYTKZAr6IiNSurcsBAEg1aGHQ9f3yzZIWUd9UF/C0t7fj6NGjKCoqwsyZM6HX67F+/Xr59oMHD6KmpgYVFRUAgIqKCuzevRsNDQ3yMZWVlTCZTJg4cWLUz5+IKFKs3Z5xG+lJ+n6PkUpabtGz0SgReShe0vrFL36Bq6++GiNHjkRtbS0efPBBaLVaLFy4EBkZGbjllluwfPlyZGdnw2Qy4Wc/+xkqKipwwQUXAADmzp2LiRMn4qabbsKjjz4Ks9mMBx54AEuWLIHR2HfKl4goFlm7PRme9KT+X7qlkhbgyfJoNdqInxdRLFA84Dl16hQWLlyIpqYm5OXlYfbs2di0aRPy8vIAAE8++SQ0Gg2uu+462Gw2zJs3D3/5y1/k39dqtVi3bh3uuOMOVFRUIDU1FYsXL8Zvf/tbpZ4SEVFEWOQMz0ABjy9xzw1EiXwUD3heffXVAW9PSkrCmjVrsGbNmn6PGTlyJN5///1wnxoRkar4Mjz9l7T8Ax6H0w0w0U0EQIU9PERE1DdrEBkerUaA4K1qOdxsXCaSMOAhIooRwTQtA9xegqgvDHiIiGKEVNIyDZDhAQC9xjuLx8kMD5GEAQ8RUYyQMjxpxrMEPN4ZPU6WtIhkDHiIiGKE1Xb2ZemAr6Rld7KkRSRhwENEFCOC7uHxlrSY4SHyYcBDRBQjgpnDA/hKWtxegsiHAQ8RUYwIZg4PAOikpmWu0iKSMeAhIooRwczhAfyXpTPDQyRhwENEFCPavQGPKeg5PAx4iCQMeIiIYoDD5UaXwwUgmAwPS1pEPTHgIVV6Y+tJrHpnL1o67EqfCpEqSNkdAEg7S8CjY4aHqBfFNw8l6snhcmPl23vR5XDhgz11ePz6aZg9Nlfp0yJSlNS/k6zXBmwQ2heD93YnMzxEMmZ4SHX211nk1H29xYYf/G0zHn5vH2xOl8JnRqQcS3dwQwcBX0nLzgwPkYwBD6nOthMtAICK0Tn4wQUjAAAv/Pc4Vr2zV8nTIlJUsCu0AF9JixkeIh8GPKQ622taAQAXnZOD311ThqdunAYAeKe6Ft0OZnkoMQU7gwfwlbTYw0Pkw4CHVGe7N8MzY0QWAODqKcUoykhCh92FLw43KnlqRIoJLcMjrdJiwEMkYcBDqlLX1oXTrV3QCMDUkkwAgEYjYN6kQgDAh3vNCp4dkXKsIfXwSBkelrSIJAx4SFW2n2gFAEwoMiHV6Hthv3KyJ+Cp3FfPT62UkOQMj/HsJS09MzxEvTDgIVXZXhNYzpKcNyobOakGtHU5sPlYsxKnRqQoqy34kpZeblpmwEMkYcBDqiKt0Jo5MjDg0WoEzJ1UAAD4cG9d1M+LSGmhNC1LAY+dJS0iGQMeUo1uhwt7a9sA9A54AMh9PP/ZWw+3my/klFgsg2haZoaHyIcBD6nGntNtcLhE5KYZMTwrudftF47JRXqSDmesNrn0RZQoQlmlxWXpRL0x4CHV8JWzMiEIQq/bDToN5kzwlrX2cLUWJZZQSlo6jTfgYSaUSMaAh1Sjv/4df1JZ64M9ZogiX8wpcUibh5qCaVrWeVdpOZnhIZIw4CFVEEVRnrDcc4WWv0vPzUOyXovTrV3YW2uJ0tkRKc9X0gqiadmb4XEyw0MkY8BDqnCyuQuN7TbotQImD8vo97hkgxbnl2YDAHawj4cSSGiDB7l5KFFPDHhIFbbVeGbrTB6WgSS9dsBjpwz3BES7T7dF/LyI1MDlFtFh9+wjF8rmoSxpEfkw4CFV+Hh/AwDI2ZuBSBmgXacY8FBikPp3gNA2D2VJi8iHAQ8prtPuxCfegGdBWdFZj5cyPIcb2rl7OiUEi7ecZdRpYNCd/WVbblpmSYtIxoCHFPfpgTPocrhQkp2MsgH6dySFpiTkphngcovYV8fGZYp/oTQsA37L0hnwEMkY8JDi3ttdCwBYUFbc5/ydngTB19i8h308cafT7sSheivaOh1Kn4pqSA3LwSxJB7hbOlFfgvvrIYqQDpsTnxzwlLP+z5Szl7MkU4Zl4LODZ9jHEyfe312HF784jq+bOtHYbgMAFGUkoXL5pUgz8mVKyvCkBR3wcGsJop6Y4SFFfXKgAd0ON0blpGBSsSno32OGJz50O1x44K3d+Ona7dh6okUOdgQBqGvrxvMbjip8hupgtQW/JB3g5qFEfeFHJ1LUul3ectaUoqDKWZIpwzMBAIfqreiyu5BsGHgpO6nPiaYOLHllO/ac9vRh/d9LR+P/lBVjRHYKNh5txB1rt+OF/x7HogtGosCUpPDZKkvu4TEG2cOjZdMyUU/M8JBi2m1OfHrwDABP/04oCkxG5KYZ4RbBxuUYVNPUiauf+QJ7TluQlaLH328+DyvmT0DZ8AxkpOhx5eRCzBiRiS6HC09WHlL6dBUXysahgN+ydAY8RDIGPKSY9fvrYXe6MTo3FROK0kP6XUEQfAMIT7VG4OwoUkRRxP3/3gVLtxOTh5nw3p0X4/Jx+QHHCIKAXy2YAAB4fetJHKq3KnGqqmEJYeNQwG/wIEtaRDIGPKSYdbvqAIRezpJIfTy7TzPDE0ve2HYKG482wajT4M8LZ6A4M7nP42aOzMaVkwrhFoFHPjgQ5bNUl1AzPHqWtIh6YcBDinC43NhwyFPOuiqIYYN9mSIHPK3hOi2KsAZrN363bh8AYPk3z8Wo3NQBj7/3ynHQaQR8cqABVUebonGKqjTYkhYDHiIfBjykiJPNnbA73UgxaDG+MLRylqTMW9I60tCOTrvzLEeTGqx6Z69cyrpldulZjx+dl4bvnVcCAPjf7acifXqq1S7P4QmtpOVkSYtIxoCHFHGiqRMAMDIndVDlLAAoMCUhP93buFzLspba/WevGe/vNkOrEfCH66bIb8pn882JBQCAr75ujuTpqdpgS1rcLZ3IhwEPKeJ4YwcAYFROypDupyyGNhJ9Y+tJfPOJDdhR06L0qSjir/89BgC49eLRmFR89i1EJDNHZkEjeIJkc1t3pE5P1ULdWkLPzUOJemHAQ4o40eQNeM7Sw3E2UllL7QMIzW3dePCdvTjc0I6f/WuHvOomUbjdIvZ6s3DXzRgW0u+akvSY6B1KuSVBszzW7sENHnS5RbgY9BABYMBDCjnuLWmFK8OzW+UBz+/f349Ou2dn91MtXVj1zl6Fzyi6apo70Wl3waDToHQQQe75o3IAAFuOJ2bjcqglLWnwIMDGZSIJAx5ShJzhyRlahmdCkeeT/7HGDticriGfVyRsPtaEd3bWQhCAVVdPhEYA/r39tDxlOhFIwyHHF6YH3bvj7/zSbADAluOJl+Fxu0W020MraRn8rjHLWkQeDHgo6hwuN061dAEYekmrKCMJ6Uk6uNwijjZ0hOP0wsrpcuNBbzZn4fkj8KOLSrHk8nMAAL96cw/q2rqUPL2okZrKJxYFv1+av/NGZQEADtW3o7nDHrbzigXtdidEb8wSdIZH45fhcTLDQwQw4CEFnGrpgsstIlmvRX66cUj3JQiCvKz9YL36Vmr9c9MJHDBbkZmixz1zxwEA7rxiLKYMz0BblwP3/+9uhc8wOvZ7MzwTBhnw5KQZMTY/DUDirdaSyll6rQCjLriXbK1GgLT40eFmwEMEMOAhBXztXaE1Midl0EvS/Y3zBjwHzOrafqCt04HHvftA/WLuOGSlGgB4Gkqf+N40AMCGQ2fQbov/GUJSSUtqPh6MRC1rWf22lQj270UQBLlxmdtLEHkw4KGo+9rbvzOY5tW+jCv0vIkeVFnA89mhBli7nRidl4qF548IuO2c/DTkpnkCoGNn2pU4vahp6bCjzrucfLBDJoFEDnhCa1iW6L1lLW4gSuTBgIeizpfhCU/AI5e0VBbwfHmkEQAwZ0IBtJren8zH5HlKNEca4jvgkcpZI7JTgm667YsU8OytbZOzHokg1CXpEr2O20sQ+WPAQ1H3tXdJemnu0JakS84t8AQ8dW3daOtUxxuhKIr44rAn4LnonNw+jzknPzECHrmcNcj+HUlRRjJGZKfALQLbTiTO8EY5w2MMLVjUaVjSIvLHgIeiTipphSvDk5GsR3FGEgDgYL06sjxfN3Witq0bBq1GXmHUU8IEPLVD79+RJGJZyzLIkpaBO6YTBWDAQ1HlvyQ9XD08gK9x+aBZHSu1pHLWjJGZSDH0/UYlBzxx3sOzb4grtPwlYsDj37QcCh13TCcKwICHoiqcS9L9jfe+maplpZYU8Mzup5wF+AKeE02enePjkc3pkjNY4cjwlHsDnp2nWtFlV+egyXAbdNOynOFhSYsIYMBDUeYrZ4VnSbpETY3LLreIjUc9WyD0178DAIWmJKQatHC5RXnydLw5XN8Op1sMKDsOxYjsFBRlJMHhEhOmj6fdG/CYQg54mOEh8seAh6Lq68bwbCnRk1zSqrdCFJX9RLu3tg1tXQ6kJ+nkvb76IggCxsR5H49v4GB6WAJcQRBw4RhPEPmFN4sW75o7PZOlTcmhlbTkHdOZ4SECwICHouyEd4XWyDCt0JKMzk2DTiPA2u1ErXfmi1KkN+ILRuecdd+oc+J8abpvhVb/gV+oLjrHs5HoxqOJEfAcOzO4DwlSScvODA8RAAY8FGXHvRme0jBneAw6jTzXRunG5WD6dyRShudonDYuh3OFlkQqE+4+3aaaMQSR4nKL8mBKqecrWDpmeIgCMOChqDoR5iXp/tSwxUS3w4Wvvvb0lgzUvyOJ55VaoigGlLTCpcCUhDF5qRBFoOpYU9juV41OtXTC5nTDoNOgJDu0rKiBPTxEARjwUNQ4XG6cjMCSdMk4FTQubzvRArvTjULvm/LZSAHP0YYOuN3x9Un8dGsXLN1O6LUCxuaHL+ABfMFkvJe1pFLn6NzUPqd1D0THkhZRAAY8FDWnvUvSk/SasC5Jl6hhpZbUv3PROblBNemOzE6BXiugy+FCbVtXpE8vqvZ6y1lj8tJgCHKX72BJjctfxnnjshTwhFrOAti0TNQTAx6KmuNNvuZLTYifVoMhZXiONLQrMtfG0u3Av7efAgDMHpsT1O/otBq5GTXeGperT7YCAKaVZIb9vitG50AjAEfPdMCscJN6JA0t4OGkZSJ/DHgoak40+mbwRMKwzGSkG3VwukUca4x+8LD6/QOot9hQmpuK+ZOLgv69eN1iYkeNp5cpEgFPRooek71L/uO5rHVkkA3LAOfwEPXEgIeiRtrnqjQ39BfvYAiCgHO9WZ5D9dENHjYda8K/ttQAAB65tgxJem3Qv3tOHK7UcrlF7DrVBgCYPqLvvcSGylfWis/GZVEUcaR+8AEPNw8lCsSAh6JCFEV8fsjzSVzaHiASijOTAQCNVlvEHqOnbocLK/69GwDw/fIRKB8dXDlLEo8ZnkP1VnTaXUg1aAf1Zh0M/3k8Sg+bjIQGqw1WmxMaYXBN/gadp6TlZIaHCAADHoqSIw3tON3aBYNOgwtCDAhCkZ3imUbb4p1OGw1PrT+M440dKDAZcf/88SH//pg4HD4o9e9MLckMeXVRsGaNzIZBq0FdW7c83ymeSP8eRuakwqgLPmMoYUmLKBADHoqKzw6eAeCZPpxsCP3FO1hZqQYAQHNHdAKeQ/VWPP/5MQDA764pgynEHa0BYLR3+XpLpwNN7dHLTEVSdU0rgMj070iSDVrMGOm5/y+Pxl9ZSwp4pIA4VHJJK87GHRANFgMeiorPDjUAAC47Ny+ij5Md5YDn+c+PweUW8c2JBfjmxIJB3UeKQYdh3lLc0TPxkanYcdLTsByp/h3JRd4+ni3HmyP6OEoYygotANB7S1oOBVYsEqlRXAU8a9aswahRo5CUlITy8nJs2bJF6VMiAB02J7467nkDvGxcZAOerJToBTwN1m68U10LALjjsjFDui/pTe1wg/K7vQ+VtduBw94360hmeACgbLhnpZY00TmeSP8WBh3waFjSIvIXNwHPa6+9huXLl+PBBx/E9u3bMXXqVMybNw8NDQ1Kn1rC23i0CXaXGyOyUyIyYdmflOGJRg/PPzfVwO5yY/qITMwYYiZj8jDPXlNPrz+Mk82d4Tg9xew61QZRBIZnJSMvAgMm/U0o8ly3Y2fa0e1wRfSxou1IgyfbN+iAR8uSFpE/ndInEC5PPPEEbr31Vtx8880AgOeeew7vvfceXnzxRdx///0Kn11i++ygt5w1Li+o6cND4StpRXZTyW6HC2s3nQAA3DK7dMj3d+vFo1G5rx6H6tux6K+b8cbtFSgwJQ35fpUQyYGDPeWnG5GdakBzhx2H69vljE+sa+t0oNHbzzXYgEfaWqK1046aptgOoik+CAJC3hMunOIi4LHb7di2bRtWrFgh/0yj0WDOnDmoqqrqdbzNZoPN5msOtVjiLx2uFqIoyg3LkS5nAYEZHlEUIxZgvV19Gk0ddgzLTMaVkwqHfH+ZKQb8v1vKcf1zVahp7sRNf9uMvy0+DwfMVnx5pBEHzVb87Ipz5NkzaiYNHIx0/w7gmb00vjAdG482YX+dJWYCnm6HC09UHsI5+Wm4bsbwXivZjpzxlLOKMpKQZhzcy7S0eej7u814f7d5aCdMFAYGnQaHfjdfscePi4CnsbERLpcLBQWBTaMFBQU4cOBAr+NXr16N3/zmN9E6vYR29IxvOXrF6Mi/WWd6l6W73CIs3U5kJIe+aupsRFHE3744DgBYfOFI6LThqQwXmJKw9ifl+O5zG3Govh0XP/ppwO0aDVQf8IiiGNUMD+Apa2082oT95tj54FJ1rEle3ffSl1/jwasnBsxvGmrDMgDMHpuLYZnJaI3iiAaigYR7T71QxUXAE6oVK1Zg+fLl8vcWiwUlJSUKnlH8krI75aXZEV2OLjHqtEgz6tBuc6K5wx6RgOeLI404VN+OFIMWN5w3Iqz3XZKdgn/eUo4bnt+E5g47RuWkYPqILLy54zS++roF3Q5XSFOco+1USxca2+3QawVMKjZF5TGlTWNjqXG5xa+pfl+dBTc8vwkLphTh4WsmIzPFgMP1Q1uSDngCwS/v/8aQz5UoXsRFwJObmwutVov6+vqAn9fX16OwsHe5wWg0wmiMbDMlefjKWflRe8ysVL0c8ESiSfqF/3qyO9+bVRKRgGpsQTo+/fll6LA7UZyZDFEUUXW0CWZLN7Z+3YLZY9Wb5dnhze5MLDJFLTCTGpcPmK0RLWOGk7XbCcAzLXpUTir+taUG7+2qw0GzFS//+Pwh7aFFRH2Li1VaBoMBM2fOxPr16+Wfud1urF+/HhUVFQqeWWLrsrvk+SjR6N+RZHuXprdEYGn6thMt+PzQGWg1Am6+aFTY71+SkaKXt8kQBAEXneMJcr44ou6NMiO5YWh/zslPg1YjoLXTAbMlNnZOt3R5muqHZ6bg4e+U4Z2ls1FoSsKRhnZ8Z82X8j5kYxnwEIVNXAQ8ALB8+XK88MILePnll7F//37ccccd6OjokFdtUfTVNHfC7nIjI1mP0RFeju5PnrYcgd6FJysPAQCunT4MI3Oi95xmj/X0d3yp8oBnpzfDE42GZUmSXosx3mnVB+piY46R1ebJ8KQneZLsk4dl4M0lF2JcQToarDZ5jhQzPEThEzcBzw033IA//vGPWLlyJaZNm4bq6mp8+OGHvRqZKXrqvZ+2izKSolpmkFdqhTnDs/lYE7440gidRsCdV4wN632fjTRReE9tW0QyV+FyqqULwNB6TwZjfKGnrLUvRvp4rN2eDI/JryRalJGM12+vkDfXzU0zICeNpXeicImbgAcAli5dihMnTsBms2Hz5s0oLy9X+pQSmhTw5Ed5noxU0gpnhkcURTzuze5877ySqM+SyDcl4dyCNIiiZ4WPGomiiNZOzxt5Vmr4e5sGIvXxxErjsqU7MMMjyUjW4x+3nI975o3DY9+dqsSpEcWtuAp4SF2kgKcgwtN2e5JLWu3hC3g2Hm3CluPNMGg1WHr5OWG731BIfTxqLWt12F2we7cxkLJs0TK+yLNS64A5NkpaUg9Peh+bzRp1Wiy5/BxcPj56jf5EiYABD0VMvcUz3LEwI8oZnjBvLyGKIh7/6CAA4PvlI+Rm4miTylpqDXikUptBp0FylJfOT4yxLSakVVqmpLhYKEsUExjwUMQoVdIK9waiXx5pwvaaVhh1Gvx0iJuEDkX56GxoNQK+bupU5X5bcjkrRR/1peH56UZkpejhFiHPsFEzqYenrwwPEUUGAx6KmHqrJ8MT7ZKWL8MTnv203t9TBwC4bubwqAdv/tKT9PJy741H1ZflkXqmpIAzmgRBiKk+nv56eIgochjwUMQ0SD080W5a9jbMhiPDI4oiPj/kGZ54hQp6KnzzeNTXuNyqYMAD+FZqxcIWE/IqLWZ4iKKGAU8M6rQ75RdMtXK7RTRIGZ6oBzyejFJblwNObxPtYB1v7MCpli4YtBpc4LfXkVJmewOejUca4XaLCp9NIKmHJ9ortCQTimJjiwmHy41uh+ffpSmZGR6iaOFfWww4Y7Xhgbd2Y1+dBY1WO7ocLug0Av72o/Nw6bnRm2AciqYOO1xuEYLgmScSTRnJeggCIIpAa5cDuUOYZSJld2aNykLqIHetDqdpJZlI1mvR1GHHscYOVQ2ma5Z7eJTJ8MTKFhNSwzKAQe+ETkShY4ZH5TrtTtzy8lf4z956nGzuQpd3BYrTLeKeN3aqdidkqWE5N80Ytt3Eg6XVCMhMDk9Za4M34LlEJYGlQafByBzPDKDTrV0Kn00gpUta/ltM1LWpd4sJaUl6ikEb9b8NokTGvzYVc7lF3PVqNXadakNWih7/+PH5+OwXl2HbA3MwJi8VDVYbVr69V+nT7FODVerfUWZSrDyLZwgBj83pwqZjnr3ALhmrjoAH8JUI61X2pt4iDx1UJuBJ0mvlHdqlTWvVyLcknf07RNHEgEfFHn5vPyr31cOg0+CFH87CJefmYVRuKnLSjHjie9Og1Qh4Z2ct3ttVp/Sp9mJuk1ZoKbOqKRwbiG79ugVdDhfy0o1yf4gaFHnnGqktiyH38KQo90Z+5eRCAMD7u9X3NyHxLUlnOYsomhjwqJAoivjLZ0fw4pfHAQBPfG8qZo3KDjhmakkmlnhnwjzw1m45o6IWSs3gkYRjA1Gpf+eSsXmq6geRMjxq2xm8ReGSFgBcNbkIgGf7jXDNYQo3CwMeIkUw4FEZS7cDS1/ZgUc/9Ez2ve/K8fg/U4r7PHbpN8ZiUrEJLZ0OrHxLXaUtKQArVCjgCUeGx9e/kxuWcwoXaXJ1vdoCHnmVlnIBz6jcVEwsMsHlFvGfvWbFzmMg0gwe/41DiSjyGPCoyJ7Tbbj6mS/w3u466DQCHlgwAbdfOrrf4w06Df54vWeDwY/2mVW1i7a0rYRSPTzZaVIPz+CW79dbunHAbIUgABerqH8H8AU8qitp+U1aVtKCKZ4sj1rLWlZ56CADHqJoYsCjAnanG3/+5DCufXYjTjR1YlhmMl6/vQI/uXj0WUspE4pMGF+YDrfoy0ioQb1CQwcl8o7pHbZB/b5UzpoyLCPqG2GejZQ1U1OGp9vhklcQZipY0gKAq8o8Ac/Go02q+hAgYQ8PkTIY8Chs87EmXPX0f/HHjw7B7nTjivH5eO/O2ZgxIivo+5B2Vf7kQEOkTjNkUoYnX+lVWoPcXuLzw56tG9SyHN2fFPA0d9hVs1Gm1L+j1QiKb4hZmpuKCd6y1kf71FfWsnRxWwkiJTDgUYjD5cbKt/fghuc34UhDO3LTDPjTDdPw18WzQv6E/A1vwLPh0JkhTxYOB4fLjaYOZaYsS6TtJQbzCV8URXlHcjUGPJkpehh1nj/dBsvgMljh1tKh3MahfbnKu1rrvd3qC3i4rQSRMhjwKKDD5sRPXt6Kf1SdAAAsPH8E1i+/DNdMHzaoN4vpJZnISNajrcuBHSdbw3y2oWtst0EUAZ1GkEtL0TaUHdPNlm40d9ih1QiYMjwj3Kc2ZIIgyH08almpJQ0dVLqcJbnK28ez8Uij6oZz+ubwMMNDFE0MeKLsjNWGG5/fhA2HziBJr8FffzgLq68tQ8YQGj11Wo28xYQaylpyOSvdCI1GmU/7vh3TQ3+zO2C2AgBG56bCqNOG9bzCRW1L06Xl/0oFuD2NyUvD+MJ0ON0iPtpXr/TpBPAtS2eGhyiaGPBEUb2lG9c++yV2n25DdqoB/7r1AsyZWBCW+5bKWp+qIOAxtyk7gwfw9fB02l0h97kc8gY85xaqZ9hgT9LwQXObOraXkFZoZSq8Qsuf1LxcqbKAR87wcONQoqhiwBNFazedwMnmLozITsH/3nEhpofQmHw2l56bB43gyU7UKrzHktLbSgBAulEHvdaTXQq1rHXQG/CML1BvwCM1LksTrZXW6r3GalrRJpUjTzZ3KnwmgazM8BApggFPFO0+3QYAuPXiUpTmpob1vrNSDXIA9elBZbM8Si9JBzx9LoPt45FKWuNUnOEpUNnS9GaV9fAAQL53W5MzVnUEhRLfHB5meIiiiQFPFO2ttQAAJhZHphFWLWUt39BB5QIeYHB9PE6XG0fOtANQd8Dj209LHSWtVpUMHfQnjURo6rDDoYLVi4BnBSB7eIiUwYAnSs5YbWiw2iAIiNhGlJeP8wQ8Xx5pUnQ+ixoyPMDgVmp93dQJu9ONFIMWJVkpkTq1ISuQt5dQR/ZC3kdLRSWt7BQDdN6m+cZ2dVwnm9MNh0sEwFVaRNHGgCdK9tZ6ylmjc1ORYojMC92EonQUmpLQ5XCh6mhTRB4jGA0KbyshkTM8IQQ8Uv/O2IJ0xVaYBcN/2rLbLSp8Nv47pasn4NFoBOSle/4NqiUwlLI7ggCkRuh1gIj6xoAnSqRy1qQIlbMAT9/KN72rvp6oPKTYEMJ6q0oyPN7hg6FMWz5Y7+3fKUiLyDmFS166ERoBcLpFNA5y+4xwUss+Wj3lewOeBpX0OklTltOMOlUH1ETxiAFPlOyrkwIeU0Qf52dXnANTkg67T7fhxS+PR/Sx+tLtcMn9HAXpCvfwDGI/rYNmz/9P4woj+//TUOm1GuSmebMXKlippcaSFgDkef8NNqikcZlTlomUw4AnSvbJDcuRfSPNT0/CAwsmAvBkeU40dUT08XqSVsQYdRrF54z4SlohZHikJekqbliWqGXassPlllceqamkBfgal9UT8HCFFpFSGPBEQbvNieONnsAjkiUtyfWzhuPCMTnodrix4t+7IYrR6/Ew+zUsK72nkryBaJA9PF12F054Z7acq+IZPBLfLB5lV2pJGT1BADKS1ZW5kEpaZ6zqKGn5tpVQ13UiSgQMeKJgv7ecVZSRFJXBbIIgYPW1ZUjSa7DxaBPe2Hoq4o8p8a3QUrZhGQh9WfrhBitEEchJNcjNrmqmlgyPtFdVRrIeWpX1pUizeNSyyapvSTozPETRxoAnCvZ6Bw5Gun/H38icVCz/5rkAgNUf7I9aA7O8j5bCDcuAr7wS7OC5WBg46K9AJdOWm1W4QksiNy2rpqTl7eFRWSaMKBEw4ImCSA8c7M+PLypFmlGHlk4HjjVGp5dHWg2jdMMyAIzOS4VOI6Cpwx7U9gLyHloxUM4C/PbTsihb0lLrCi3Av4dHXSUtZniIoo8BTxT4lqRHd+WPTquRm6R3n2qLymOqqaSVYtChzLuf0ubjzWc9XlqSHgsNy4B/D4+yb+byCi1VZng816ix3Q6XCuYVWbpY0iJSCgOeCLM73Tjc4HkjjXbAAwCTvVmlPbXRCXhavS/oatlEsrw0BwCw+djZBzHGXElLJdOWW1S4j5YkN80AQQBcbjHkPdUigU3LRMphwBNhhxuscLhEZCTrMSwzOeqPP3mYJ8jae9oSlcfzfYJVxwt6eWk2AGDL1wNneJo77HKvz9gYKWlJGZ52m1PuDVGCtEorO1Ud/5/702k1yPEG32ooa1nkkpb6rhVRvGPAE2Fy/06RSZFl2pOHZXjPoy0qWxBIL+hKz+CRzBqVBY0AnGjqHLD0I83fKclORppRHed+NqlGnVwaUXLXdClzosYMD6Cu4YNWrtIiUgwDngjbp1D/jmR0biqS9Bp02F34OgpDCKUMj1pS9ulJenn20ebj/Ze15AnLBeqesNyT3Lis4EqtVhX38AB+s3hUsDTd94FAHX8fRImEAU+ESZuGThqmzBupTqvBhCLPY++pjXxZS5ozoqYBdFJZa9Ox/sta/z3cCACYMjy6K+mGSlqaXqfg8MEWFZe0AF8DvZJZMAkzPETKYcATQW636JfhUe6NVG5cPh3ZxmW7041uh2fej1oyPABwvtTH00+Gx9rtkAOeKycXRu28wsF/13SltKi8pJWvqpKW1LTMgIco2hjwRFCD1QaNRoBRp8Ho3FTFzqNsWHQCHv/G2TQVvaCfX5oNQQCOnunocwjhJwcaYHe5MSYvFWPz1b1Lek9FKpi2rOZl6YB6ZvGIouiX4VHPBwKiRMGAJ4IKM5Kw68G52HDP5dBplbvUUjltz+m2iO6rJfUnpBl1qtpiIDPFgHHelVdb+pjH8/7uOgDA/MlFiu//FSppaXpdqzJv5i63iDZv31aWSktaapm23GF3QVo3oKYMKFGiYMATYYIgyHseKWVsfjoMWg0s3U6caolcr4evYVk92R2J1MfTs3G5w+bEZwfPAADml8VWOQsASnM8mcPDDe2KPL6lyyG/iWcmqzPDk6eS/bSk7I5OIyBJz5deomjjX10CMOg08jC9SJa1LCreJ6h8tGcAYc8Mz2cHz8DmdGNkTgomFsXWCi0AckN6TXOnIrN4pHJWulEHg06dLye+HdNtEc1wno3/thKxlkkkigfqfIWisJMGEEZy4rKap8hKjcsHzFa5yRYA3t/jKWddObkwJt+EslINch+PNCk6mqQVWpkqLWcBgLTzvd3llstvSpAzoCr8QECUCBjwJAhpldjuCE5cVvM+QblpRozJ85R/1h9oAAB0O1z41PvfV00uUuzchkrKTO2LwtiBnlpUvFO6JEmvlcckKNnHw41DiZTFgCdByBOXI9i4rOaSFgB8Y3w+AOC+/92F5zYcxWcHz6DT7sKwzOSYm7/jT9ogdn9d9AOeZhXvo+VPblxWsI9H+vtIN6rz74Mo3vGjRoIYX5gOrUZAU4cdZks3ijLCv6+XpUvdM0aWffNcNFhteLu6Fo98cACpBi2A2C1nSaQ+nn0KBDy7TrUCgKJjF4KRbzLicEO7okvTLczwECmKGZ4EkaTXyjNm9kSorKX2DE+KQYc/3TANv/9OGQw6z3YbAHBVDK7O8ieVtA6YrXC63FF97KqjnlVvF3ibwtVKDcMHrSr/+yCKdwx4EsjkCA8gVHPTskQQBHy/fATe/OmFGF+YjvLSbEwvyVL6tIZkRHYKUg1a2J1uHGuM/H5pkgZrN46e6YAgABeMzo7a4w6GGkpa7OEhUhb/8hKIlOGJ1CaivlUo6v9nNak4Ax/cdXFMl7IkGo2A8UUmbDvRgv11FpzrHbIYadLeZBMKTarv4clLV37aMqcsEymLGZ4EMjwrBQBwOkLDBy0x9oIeD8GORImVWlI5q2KMustZAJBvUn74oNp73IjiHQOeBDIsy9OoHKlpy74X9NgIeOKJtFIrmo3Lm47FRv8OABSoKMPDvw8iZTDgSSDDvQFPvbUbdmf4m1t9Tcv8BBttE/wyPNGYJmxu68bxxg5oBN9QRzWTMzycw0OUsBjwJJCcVAOS9BqIIlDXFv4sj28vLX6CjbZxBenQCEBTh73PHeHDTcruTCrOkIf6qZnUtNxpd6Hd5lTkHGKt5EsUbxjwJBBBEDAsMzJlLafLLS/z5rLb6Es2aDE6z9OUvjcKZa1Y6t8BgFSjTp671GBRpqzV7J1KnZ2q7gZvonjFgCfBSI3Lp1o6w3q//p+ambJXhlTWisbE5Sq5f0f95SyJkmUtl1uUA57cdAY8REpgwJNghkeocVlqWE7Wa6HX8p+VEqK1Uut0axdqmjuh1Qg4b1QMBTzesla9Ahme5g473CIgCEC2ypfwE8UrvjMlGGmlVriXprNhWXmhrtTadqIZR8+0h/w4Ujlr8rCMmOpHKVBwaXpju+cxs1MM0PEDAZEi+O6UYHwlrXBneNiwrLQJRZ6Bg8cbO9BpdyLF0Pefd3OHHQ++sxfv7qyFViPgxxeNwt1zzkWqMbiXA6lhuSIGlqP7K8zwBDxmBTI8UsCTm2aM+mMTkQc/aiQYX0krvD080saIbFhWTn56EnLTjBBF4KO99X0e8+EeM+Y+uQHv7qyFIHh6S17473HMffJzfLyv79/pSQ54YqRhWaJkSUsOeNi/Q6QYBjwJRgp4zJZuOMK40aRvyS2Thkq6emoRAOAXb+zEB7vr5J83d9jxs3/twO3/3IbGdjvG5qfhrZ9ehL//6DwMz0rG6dYu/OQfW/HaVzUD3v8Zqw2nWrogCMCMEZmRfCphJ2V4FAl4rN6GZWZ4iBTDd6cEk5tqhEGngd3phrmtGyXZKWG5X5a01OFXV01Ac4cdb1fXYum/duBJtwiDVsADb+1BY7sdGgG4/dIxuGvOWBh1nmXalaMvxe/f34//t+kEHv3wIBZMKUZaP+UtaePZ0bmpMdW/AwCFJpa0iBIZA54Eo9EIGJ6ZjGONHTjZ0hm+gEcuafGflJJ0Wg2e+N406DQa/O/2U7jzXzvk284tSMNj352KqSWZAb+TbNBi5dUT8eWRRhxr7MD/bDiKn88d1+f97/YGPGXDMiL2HCJFalqut9ggimJU91KThkEy4CFSDktaCSgSK7WY4VEPrUbAY9+dgoXnl8jfL7l8DN792exewY5Er9Xg3ivHAwBe+O8xmNv6zoLsOuUNeIb3fT9qlm/yBBt2pxutnY6oPvYZOcPDHh4ipfDjeAKKxCweK5uWVUWjEfDwNWW4ZGweSvNSMb7QdNbfmTepALNGZmHriRY8UXkQj353aq9j9sRwhseo0yIrRY+WTgfqrd3IiuLE48Z2aeggMzxESmGGJwFFYmk6m5bVR6MRML+sKKhgB/BsPfLLBRMAAP/ftlM4YA6c59Ng7YbZ0g1BACYVB3efaiOVtfrLYEWK1MOTx5IWkWIY8CSgSCxNZ0krPswYkYWrygrhFoFHPjgQcJuU3RmTlxb0zB61UWL4oNt/WwkGPESKYcCTgKQNRE+3hjPDw5JWvLh33nhoNQI+O3gGx/wmMUv9O1NisJwlUWKlVkunHS63CADIYQ8PkWIY8CQgqaRV19YNZ5hm8fgyPLH5yZ98RuWmYvY5uQCAd3f6ZvlIGZ7JMRzwFCgwbVnq38lK0XOfOSIFKfrXN2rUKAiCEPD1yCOPBByza9cuXHzxxUhKSkJJSQkeffTRXvfzxhtvYPz48UhKSkJZWRnef//9aD2FmJSfboReK8DlFsP2wm+V99JihiceXD21GADwzs7TEEVPdkLO8AyP4YDHu1KrIaoBD5ekE6mB4h83fvvb36Kurk7++tnPfibfZrFYMHfuXIwcORLbtm3DY489hlWrVuH555+Xj9m4cSMWLlyIW265BTt27MA111yDa665Bnv27FHi6cQEjUbwlbXC0Ljsdouw2jwlLTYtx4d5kwpg0Glw9EwH9tdZUW/pRoPVBo3g26Q0FilR0mLAQ6QOigc86enpKCwslL9SU1Pl29auXQu73Y4XX3wRkyZNwo033og777wTTzzxhHzMU089hSuvvBL33HMPJkyYgIceeggzZszAn//8ZyWeTswYFsal6e12J7xJADYtx4n0JD2+MS4fAPDOzlrs9mZ3zslP63dT0ljgP3wwWuShg1ySTqQoxQOeRx55BDk5OZg+fToee+wxOJ1O+baqqipccsklMBh8jX7z5s3DwYMH0dLSIh8zZ86cgPucN28eqqqq+n1Mm80Gi8US8JVohmeGb2m61L9j0GmQpNcO+f5IHb41zVPWendnLXbFQf8O4At4GtttYd1LbiDyDB42LBMpStGPanfeeSdmzJiB7OxsbNy4EStWrEBdXZ2cwTGbzSgtLQ34nYKCAvm2rKwsmM1m+Wf+x5jN5n4fd/Xq1fjNb34T5mcTW8K5NN3S5V2hxexOXPnG+HykGrQ43dqF1786CSC2V2gBQE6qATqNAKdbRGO7DUUZyRF/TJa0iNQh7Bme+++/v1cjcs+vAwc88z2WL1+Oyy67DFOmTMHtt9+Oxx9/HM888wxstsimm1esWIG2tjb56+TJkxF9PDWSt5cIw9J0X8Ny7JY6qLckvRZzJxUC8PW8lMVwwzLg6V/L95aWojV8kEMHidQh7O9QP//5z/GjH/1owGNGjx7d58/Ly8vhdDrx9ddfY9y4cSgsLER9fX3AMdL3hYWF8v/2dYx0e1+MRiOMxsR+8QnntGV5Bg8zPHHnW1OL8eaO0wDgaVguiu2AB/AsTa9t60Z9lBqXfT08LGkRKSnsAU9eXh7y8vIG9bvV1dXQaDTIz/c0S1ZUVOBXv/oVHA4H9HrPm2llZSXGjRuHrKws+Zj169fj7rvvlu+nsrISFRUVQ3sicU4qadW2dsHlFqHVDH7naKmHhyu04s/ssbny/lNj89ORbIj9Hq2C9Og2LrOkRaQOijUtV1VV4U9/+hN27tyJY8eOYe3atVi2bBl+8IMfyMHM97//fRgMBtxyyy3Yu3cvXnvtNTz11FNYvny5fD933XUXPvzwQzz++OM4cOAAVq1aha1bt2Lp0qVKPbWYUGBKgl7r6WUY6tJ0C2fwxC29VoP5ZUUAgKklsZ/dAYDCKA4fdLtFNLVzWwkiNVDsI7nRaMSrr76KVatWwWazobS0FMuWLQsIZjIyMvDRRx9hyZIlmDlzJnJzc7Fy5Urcdttt8jEXXnghXnnlFTzwwAP45S9/ibFjx+Ktt97C5MmTlXhaMUOrETCxyISdp9qw42QLRuSkDPq+2LQc3+6ZOw6ZyXosumCk0qcSFvne4YPRKGm1dTng5LYSRKqgWMAzY8YMbNq06azHTZkyBf/9738HPOb666/H9ddfH65TSxgzRmZh56k2bD/Rgm9PGzbo+2HTcnzLSjXg3ivHK30aYVMoz+KJfMAjlbNMSToYdbFfDiSKZYrP4SHlzBzpKR1uq2kZ0v3IJS1meCgGFEZx+OCZdg4dJFILBjwJTAp49tdZ0WFznuXo/vlKWszwkPrlSwFPFJalN7J/h0g1GPAksKKMZAzLTIbLLWLnydZB3w+blimWSE3LVptzSIF+MBq9S9LzmOEhUhwDngQ3QyprnRh8WYslLYolaUYdUr3L6yPdx8Ohg0TqwYAnwc0ckQlgaH08VmnwIJuWKUYURGlpum8GD1doESmNAU+CmzkyGwCw/UQL3N7ls6GSBg8yw0OxQho+2BDhxmX28BCpBwOeBDe+KB3Jei0s3U4cOdMe8u+LoihvLZHOgIdiRLSGD3LKMpF6MOBJcHqtBtNKMgEMro+n0+6Cy5sZYkmLYkVBlGbxNFq5LJ1ILRjwkG8ezyACHqlhWacRkKznYDWKDQVRmLYsiqJfSYs9PERKY8BDQwp4fA3LegjC4DcgJYomafigOYKzeCxdTthdbgAsaRGpAQMewnTvSq3jjR1oag+tifN0q2fj0awU9u9Q7CjNSwUA7K21yFujhJs0ZTndqEMSs59EimPAQ8hMMeCc/DQAwPaa1pB+d7s3KzTV2wdEFAvGFaRjTF4qbE43PthjjshjNHJbCSJVYcBDAIBZ3rLW1hPNIf3e1q89AY9UFiOKBYIg4NoZwwEAb24/3ev25g47uh2uIT0GZ/AQqQsDHgLgK2vtPtUW9O84XG5Ue7ekmOWd50MUK749rRgAsOl4E2q9pVnAU9q99LFPMfsPnwxpAnlLp6dUlp3KgIdIDRjwEABgYlEGAGBfnQWiGNwAwgN1VnQ5XDAl6TDWWxIjihXDs1JQXpoNUQTeqvZleR5+bx+s3U40ttux8IVNeLu6dwYoGFJvEOdTEakDAx4CAIwtSINWI6C104G6IFeuSOWvGSOzoNFwhRbFnmtnDAPgKWuJoogNh87g4/0N0GkEXDw2F3anG3e9Wo0nKw8F/UFA0u5dwZhm5HwqIjVgwEMAgCS9FufkebI0++ssQf3OVm+6fxb7dyhGzS8rglGnweGGduw81YaH1u0DACy+cBRevvl8/N9LRgMAnlp/GG9X14Z03+3endhNSQx4iNSAAQ/JJhSlAwD21Z494BFFEdvkhmX271BsMiXpMWdiAQBgydrtONLQjuxUA+68Yiw0GgErrpqAheePAADsPNUa0n1LM6rSGPAQqQIDHpJNLDYBAPabzx7wnG7tgtnSDa1GkLemIIpF1073lLWkmVK/mDsOGcm+vhupP63BGtqMKjngMbKHh0gNGPCQTG5cDiLDI61emVRsQrKBQ9Uodl1ybh5yvCupJhSZcMN5JQG3S/tuNYS4DUW7TWpaZoaHSA0Y8JBMKml93dQp9x/0Rwp4OH+HYp1eq8Edl41BXroRD39nMrQ9GvDz5X23BpnhYcBDpAoMeEiWk2aUN1U8eJayljRwkPN3KB785OLR+OpXczBjRO8AviDdm+Gxdoe0Ukv60JDOVVpEqsCAhwJMLPL08QxU1mq3OXHAGxDNGsUMD8U3KcPT7XDD0j1w5tOftCydc3iI1IEBDwWQGpf3DbA0fUdNC9wiMDwrWe5vIIpXSXqtvLQ8lD4elrSI1IUBDwWYIGV46qz9HuMrZzG7Q4lBblwOcqWWzemC3eUGwKZlIrVgwEMBpJLWQbMFLnfvfgVrtwPrdnkGsM0cxf4dSgxSwFMfZIan3a/0lWpgwEOkBgx4KMDInFSkGLTodrhxvLEj4Dab04Xb/7kNR890IDfNgCsnFSp0lkTRlZ8e2kotqZyVatD2WvVFRMpgwEMBtBoB4wq9E5f9+njcbhE/f30nvjzShFSDFn//0fnI874JEMW7fJNvpVYw5BVabFgmUg0GPNRLz5Vaoijioff2Yd2uOui1Ap67aSbKhmcoeYpEUSWNa2gIMcPDhmUi9eBfI/UibzFRZ0Frpx2/fHM33t9tBgD88fqpuHhsnpKnRxR1+emhZXis3Z4py9wpnUg9+NdIvUgrtbbXtODKP/0XZks3dBoBq741Cd+eNkzhsyOKvoIQpy37Slp8iSVSC/41Ui/jC9MhCJ60vLXbidG5qXjqxuksY1HC8l+lJYoiBGHgRmQGPETqwx4e6iXFoMOUYZ7gZuH5I7DuztkMdiihSQ36Nmdw05Z9O6Uz4CFSC/41Up/+fvP5MLd1y/08RIksSa9FRrIebV0ONFi6kZE88OorK7eVIFIdZnioT9mpBgY7RH5C6eNpt7FpmUhtGPAQEQUhlJVavgwPAx4itWDAQ0QUhPxQMjwMeIhUhwEPEVEQpAxPMPtpWW1S0zJ7eIjUggEPEVEQpB6eM0HsmM5Jy0Tqw4CHiCgIoeyYLjUts6RFpB4MeIiIgiDtmN4QQoYnnau0iFSDAQ8RURB6TlvujyiKctMyS1pE6sGAh4goCAHTlrv6n7Zsc7rhdHsCIg4eJFIPBjxEREGQpi0DA8/isXh3ShcEIEWvjcq5EdHZMeAhIgpSMNOW2/320dJoBt5klIiihwEPEVGQglmpJe+UzoZlIlVhwENEFKS8IFZqcQYPkTox4CEiClIwGR7ulE6kTgx4iIiCVCBneM5e0uJO6UTqwoCHiChI+d4MT8MATctW7yotlrSI1IUBDxFRkORVWgNleLwlLRMDHiJVYcBDRBQkacf0Bout32nLLGkRqRMDHiKiIOWbfNOW27ocfR5jkefwsGmZSE0Y8BARBcmo0yIrxRPI9Dd8UJ7Dw5IWkaow4CEiCoG0NN3cz9L0djYtE6kSAx4iohCcbRaPPIeHPTxEqsKAh4goBIVSwNPWT4bHxsGDRGrEgIeIKARnW5rOrSWI1IkBDxFRCAoyvD08bX03LcuDB1nSIlIVBjxERCEoSO+/h0cURbmkxcGDROrCgIeIKASFGf0HPF0OF9zeeYQsaRGpCwMeIqIQSKu0GtttcLrcAbdJ/TtajYBkvTbq50ZE/WPAQ0QUgpxUA3QaAW4RaGy3B9wmNywbdRAEQYnTI6J+MOAhIgqBRiMgP92zUqvn8EHuo0WkXgx4iIhClC9NW+4xi0daocVtJYjUhwEPEVGIpOGDDT1m8bR3cx8tIrViwENEFCJp+GDvDA9LWkRqFbGA5+GHH8aFF16IlJQUZGZm9nlMTU0NFixYgJSUFOTn5+Oee+6B0+kMOOazzz7DjBkzYDQacc455+Cll17qdT9r1qzBqFGjkJSUhPLycmzZsiUCz4iIyKNAXpoeOHzQym0liFQrYgGP3W7H9ddfjzvuuKPP210uFxYsWAC73Y6NGzfi5ZdfxksvvYSVK1fKxxw/fhwLFizA5Zdfjurqatx99934yU9+gv/85z/yMa+99hqWL1+OBx98ENu3b8fUqVMxb948NDQ0ROqpEVGCK+xnA9F2bitBpFoRC3h+85vfYNmyZSgrK+vz9o8++gj79u3DP//5T0ybNg3z58/HQw89hDVr1sBu9yz1fO6551BaWorHH38cEyZMwNKlS/Hd734XTz75pHw/TzzxBG699VbcfPPNmDhxIp577jmkpKTgxRdfjNRTI6IEJ83i6blKS25aZkmLSHUU6+GpqqpCWVkZCgoK5J/NmzcPFosFe/fulY+ZM2dOwO/NmzcPVVVVADxZpG3btgUco9FoMGfOHPkYIqJwK+gvw2Nj0zKRWin2V2k2mwOCHQDy92azecBjLBYLurq60NLSApfL1ecxBw4c6PexbTYbbDZf7d1isQzpuRBRYpGalq3dTnTanUgxeF5KrZzDQ6RaIWV47r//fgiCMODXQIGGWqxevRoZGRnyV0lJidKnREQxJD1Jj1SDZ+sI/8ZleZUWm5aJVCekjyE///nP8aMf/WjAY0aPHh3UfRUWFvZaTVVfXy/fJv2v9DP/Y0wmE5KTk6HVaqHVavs8RrqPvqxYsQLLly+Xv7dYLAx6iCgkBaYkHGvsgLmtG6W5qQCAdg4eJFKtkP4q8/LykJeXF5YHrqiowMMPP4yGhgbk5+cDACorK2EymTBx4kT5mPfffz/g9yorK1FRUQEAMBgMmDlzJtavX49rrrkGAOB2u7F+/XosXbq038c2Go0wGo1heR5ElJikgMd/+KDcw8OSFpHqRKxpuaamBtXV1aipqYHL5UJ1dTWqq6vR3t4OAJg7dy4mTpyIm266CTt37sR//vMfPPDAA1iyZIkcjNx+++04duwY7r33Xhw4cAB/+ctf8Prrr2PZsmXy4yxfvhwvvPACXn75Zezfvx933HEHOjo6cPPNN0fqqRERoTCj9/YSVi5LJ1KtiP1Vrly5Ei+//LL8/fTp0wEAn376KS677DJotVqsW7cOd9xxByoqKpCamorFixfjt7/9rfw7paWleO+997Bs2TI89dRTGD58OP76179i3rx58jE33HADzpw5g5UrV8JsNmPatGn48MMPezUyExGFU74pcAPRTrsTTR2ekRoZyezhIVIbQRRFUemTUJrFYkFGRgba2tpgMpmUPh0iigF///I4fvPuPiwoK8KaRTPwdvVp3PVqNUZkp2DDPZdBEASlT5Eo7oXy/s29tIiIBqHn8MG3dpwGAFwzrZjBDpEKMeAhIhoE/+GDTe02fH64EQDw7enDlDwtIuoHAx4iokGQhg82WGx4d2ctXG4RU4ZnYExemsJnRkR9YcBDRDQI+emeDI/d5cbLVScAANdMY3aHSK0Y8BARDYJBp0FumgEAcLyxAxoB+D9TixQ+KyLqDwMeIqJBkrI8ADB7bF7A90SkLgx4iIgGSRo+CHhWZxGRejHgISIaJKlxOVmvxbxJ/e/fR0TKY8BDRDRI0qah8yYVIJX7ZxGpGv9CiYgGaVH5SCQbdPjWVJaziNSOAQ8R0SClGnW46YKRSp8GEQWBJS0iIiKKewx4iIiIKO4x4CEiIqK4x4CHiIiI4h4DHiIiIop7DHiIiIgo7jHgISIiorjHgIeIiIjiHgMeIiIiinsMeIiIiCjuMeAhIiKiuMeAh4iIiOIeAx4iIiKKe9wtHYAoigAAi8Wi8JkQERFRsKT3bel9fCAMeABYrVYAQElJicJnQkRERKGyWq3IyMgY8BhBDCYsinNutxu1tbVIT0+HIAhhvW+LxYKSkhKcPHkSJpMprPcd63ht+sdr0z9em/7x2vSP16Z/sXxtRFGE1WpFcXExNJqBu3SY4QGg0WgwfPjwiD6GyWSKuX9I0cJr0z9em/7x2vSP16Z/vDb9i9Vrc7bMjoRNy0RERBT3GPAQERFR3GPAE2FGoxEPPvggjEaj0qeiOrw2/eO16R+vTf94bfrHa9O/RLk2bFomIiKiuMcMDxEREcU9BjxEREQU9xjwEBERUdxjwENERERxjwFPhK1ZswajRo1CUlISysvLsWXLFqVPKapWr16N8847D+np6cjPz8c111yDgwcPBhzT3d2NJUuWICcnB2lpabjuuutQX1+v0Bkr55FHHoEgCLj77rvlnyXytTl9+jR+8IMfICcnB8nJySgrK8PWrVvl20VRxMqVK1FUVITk5GTMmTMHhw8fVvCMo8PlcuHXv/41SktLkZycjDFjxuChhx4K2EsoUa7N559/jquvvhrFxcUQBAFvvfVWwO3BXIfm5mYsWrQIJpMJmZmZuOWWW9De3h7FZxEZA10bh8OB++67D2VlZUhNTUVxcTF++MMfora2NuA+4u3aMOCJoNdeew3Lly/Hgw8+iO3bt2Pq1KmYN28eGhoalD61qNmwYQOWLFmCTZs2obKyEg6HA3PnzkVHR4d8zLJly/Duu+/ijTfewIYNG1BbW4trr71WwbOOvq+++gr/8z//gylTpgT8PFGvTUtLCy666CLo9Xp88MEH2LdvHx5//HFkZWXJxzz66KN4+umn8dxzz2Hz5s1ITU3FvHnz0N3dreCZR94f/vAHPPvss/jzn/+M/fv34w9/+AMeffRRPPPMM/IxiXJtOjo6MHXqVKxZs6bP24O5DosWLcLevXtRWVmJdevW4fPPP8dtt90WracQMQNdm87OTmzfvh2//vWvsX37dvz73//GwYMH8a1vfSvguLi7NiJFzPnnny8uWbJE/t7lconFxcXi6tWrFTwrZTU0NIgAxA0bNoiiKIqtra2iXq8X33jjDfmY/fv3iwDEqqoqpU4zqqxWqzh27FixsrJSvPTSS8W77rpLFMXEvjb33XefOHv27H5vd7vdYmFhofjYY4/JP2ttbRWNRqP4r3/9KxqnqJgFCxaIP/7xjwN+du2114qLFi0SRTFxrw0A8c0335S/D+Y67Nu3TwQgfvXVV/IxH3zwgSgIgnj69OmonXuk9bw2fdmyZYsIQDxx4oQoivF5bZjhiRC73Y5t27Zhzpw58s80Gg3mzJmDqqoqBc9MWW1tbQCA7OxsAMC2bdvgcDgCrtP48eMxYsSIhLlOS5YswYIFCwKuAZDY1+add97BrFmzcP311yM/Px/Tp0/HCy+8IN9+/PhxmM3mgGuTkZGB8vLyuL82F154IdavX49Dhw4BAHbu3IkvvvgC8+fPB5DY18ZfMNehqqoKmZmZmDVrlnzMnDlzoNFosHnz5qifs5La2togCAIyMzMBxOe14eahEdLY2AiXy4WCgoKAnxcUFODAgQMKnZWy3G437r77blx00UWYPHkyAMBsNsNgMMh/ZJKCggKYzWYFzjK6Xn31VWzfvh1fffVVr9sS+docO3YMzz77LJYvX45f/vKX+Oqrr3DnnXfCYDBg8eLF8vPv6+8r3q/N/fffD4vFgvHjx0Or1cLlcuHhhx/GokWLACChr42/YK6D2WxGfn5+wO06nQ7Z2dkJda26u7tx3333YeHChfLmofF4bRjwUNQsWbIEe/bswRdffKH0qajCyZMncdddd6GyshJJSUlKn46quN1uzJo1C7///e8BANOnT8eePXvw3HPPYfHixQqfnbJef/11rF27Fq+88gomTZqE6upq3H333SguLk74a0Ohczgc+N73vgdRFPHss88qfToRxZJWhOTm5kKr1fZaUVNfX4/CwkKFzko5S5cuxbp16/Dpp59i+PDh8s8LCwtht9vR2toacHwiXKdt27ahoaEBM2bMgE6ng06nw4YNG/D0009Dp9OhoKAgYa9NUVERJk6cGPCzCRMmoKamBgDk55+If1/33HMP7r//ftx4440oKyvDTTfdhGXLlmH16tUAEvva+AvmOhQWFvZaROJ0OtHc3JwQ10oKdk6cOIHKyko5uwPE57VhwBMhBoMBM2fOxPr16+Wfud1urF+/HhUVFQqeWXSJooilS5fizTffxCeffILS0tKA22fOnAm9Xh9wnQ4ePIiampq4v05XXHEFdu/ejerqavlr1qxZWLRokfzfiXptLrrool7jCw4dOoSRI0cCAEpLS1FYWBhwbSwWCzZv3hz316azsxMaTeBLt1arhdvtBpDY18ZfMNehoqICra2t2LZtm3zMJ598ArfbjfLy8qifczRJwc7hw4fx8ccfIycnJ+D2uLw2SndNx7NXX31VNBqN4ksvvSTu27dPvO2228TMzEzRbDYrfWpRc8cdd4gZGRniZ599JtbV1clfnZ2d8jG33367OGLECPGTTz4Rt27dKlZUVIgVFRUKnrVy/FdpiWLiXpstW7aIOp1OfPjhh8XDhw+La9euFVNSUsR//vOf8jGPPPKImJmZKb799tvirl27xG9/+9tiaWmp2NXVpeCZR97ixYvFYcOGievWrROPHz8u/vvf/xZzc3PFe++9Vz4mUa6N1WoVd+zYIe7YsUMEID7xxBPijh075JVGwVyHK6+8Upw+fbq4efNm8YsvvhDHjh0rLly4UKmnFDYDXRu73S5+61vfEocPHy5WV1cHvDbbbDb5PuLt2jDgibBnnnlGHDFihGgwGMTzzz9f3LRpk9KnFFUA+vz6+9//Lh/T1dUl/vSnPxWzsrLElJQU8Tvf+Y5YV1en3EkrqGfAk8jX5t133xUnT54sGo1Gcfz48eLzzz8fcLvb7RZ//etfiwUFBaLRaBSvuOIK8eDBgwqdbfRYLBbxrrvuEkeMGCEmJSWJo0ePFn/1q18FvFElyrX59NNP+3x9Wbx4sSiKwV2HpqYmceHChWJaWppoMpnEm2++WbRarQo8m/Aa6NocP36839fmTz/9VL6PeLs2gij6jeckIiIiikPs4SEiIqK4x4CHiIiI4h4DHiIiIop7DHiIiIgo7jHgISIiorjHgIeIiIjiHgMeIiIiinsMeIiIiCjuMeAhIiKiuMeAh4iIiOIeAx4iIiKKewx4iIiIKO79/4IMiNbWemRAAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "KerasTensor(type_spec=TensorSpec(shape=(None, 128, 3), dtype=tf.float32, name='input_1'), name='input_1', description=\"created by layer 'input_1'\")\n"
     ]
    }
   ],
   "source": [
    "from keras.models import load_model, Model,Input\n",
    "\n",
    "print(test_label[0:3])\n",
    "print(gx)\n",
    "print(len(gx))\n",
    "plt.plot(gx)\n",
    "plt.show()\n",
    "print(Input(train_data.shape[1:]))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8488265b-2580-4243-a747-7c864b9a8e99",
   "metadata": {},
   "source": [
    "## 五、模型创建"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "fbe5f21b-1bf5-47ba-ba04-fb7913935279",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "conv1d (Conv1D)              (None, 126, 64)           640       \n",
      "_________________________________________________________________\n",
      "conv1d_1 (Conv1D)            (None, 124, 64)           12352     \n",
      "_________________________________________________________________\n",
      "conv1d_2 (Conv1D)            (None, 124, 64)           8256      \n",
      "_________________________________________________________________\n",
      "flatten (Flatten)            (None, 7936)              0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 128)               1015936   \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 36)                4644      \n",
      "=================================================================\n",
      "Total params: 1,041,828\n",
      "Trainable params: 1,041,828\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "Epoch 1/500\n",
      "50/50 [==============================] - 4s 18ms/step - loss: 29.8937 - accuracy: 0.1818 - val_loss: 2.6654 - val_accuracy: 0.2774\n",
      "Epoch 2/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8773 - accuracy: 0.4951 - val_loss: 1.7008 - val_accuracy: 0.5839\n",
      "Epoch 3/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.8951 - accuracy: 0.7501 - val_loss: 1.2779 - val_accuracy: 0.7192\n",
      "Epoch 4/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.3757 - accuracy: 0.8862 - val_loss: 1.0701 - val_accuracy: 0.8099\n",
      "Epoch 5/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1951 - accuracy: 0.9394 - val_loss: 1.0908 - val_accuracy: 0.7962\n",
      "Epoch 6/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1395 - accuracy: 0.9571 - val_loss: 1.2037 - val_accuracy: 0.8288\n",
      "Epoch 7/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0652 - accuracy: 0.9794 - val_loss: 0.9326 - val_accuracy: 0.8510\n",
      "Epoch 8/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0326 - accuracy: 0.9926 - val_loss: 1.0385 - val_accuracy: 0.8476\n",
      "Epoch 9/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0753 - accuracy: 0.9811 - val_loss: 1.2043 - val_accuracy: 0.8134\n",
      "Epoch 10/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1871 - accuracy: 0.9554 - val_loss: 1.1977 - val_accuracy: 0.8390\n",
      "Epoch 11/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1948 - accuracy: 0.9531 - val_loss: 1.2120 - val_accuracy: 0.8305\n",
      "Epoch 12/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0704 - accuracy: 0.9828 - val_loss: 1.4505 - val_accuracy: 0.8596\n",
      "Epoch 13/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0974 - accuracy: 0.9754 - val_loss: 1.4609 - val_accuracy: 0.8271\n",
      "Epoch 14/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0545 - accuracy: 0.9857 - val_loss: 1.2792 - val_accuracy: 0.8527\n",
      "Epoch 15/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0817 - accuracy: 0.9811 - val_loss: 1.4292 - val_accuracy: 0.8288\n",
      "Epoch 16/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0992 - accuracy: 0.9748 - val_loss: 1.6016 - val_accuracy: 0.8390\n",
      "Epoch 17/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1405 - accuracy: 0.9703 - val_loss: 1.4276 - val_accuracy: 0.8373\n",
      "Epoch 18/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1311 - accuracy: 0.9686 - val_loss: 1.6102 - val_accuracy: 0.8476\n",
      "Epoch 19/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1930 - accuracy: 0.9651 - val_loss: 2.4033 - val_accuracy: 0.8305\n",
      "Epoch 20/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.4350 - accuracy: 0.9411 - val_loss: 2.1070 - val_accuracy: 0.7654\n",
      "Epoch 21/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.4309 - accuracy: 0.9320 - val_loss: 2.6598 - val_accuracy: 0.8236\n",
      "Epoch 22/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.6738 - accuracy: 0.9119 - val_loss: 2.4179 - val_accuracy: 0.8425\n",
      "Epoch 23/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.4062 - accuracy: 0.9440 - val_loss: 2.7733 - val_accuracy: 0.8373\n",
      "Epoch 24/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2347 - accuracy: 0.9663 - val_loss: 1.9584 - val_accuracy: 0.8664\n",
      "Epoch 25/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1444 - accuracy: 0.9748 - val_loss: 2.5869 - val_accuracy: 0.8613\n",
      "Epoch 26/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1589 - accuracy: 0.9806 - val_loss: 1.9871 - val_accuracy: 0.8801\n",
      "Epoch 27/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0977 - accuracy: 0.9823 - val_loss: 2.0883 - val_accuracy: 0.8613\n",
      "Epoch 28/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0383 - accuracy: 0.9931 - val_loss: 1.9341 - val_accuracy: 0.8887\n",
      "Epoch 29/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0246 - accuracy: 0.9960 - val_loss: 2.0634 - val_accuracy: 0.8870\n",
      "Epoch 30/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0482 - accuracy: 0.9920 - val_loss: 2.0515 - val_accuracy: 0.8973\n",
      "Epoch 31/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0651 - accuracy: 0.9897 - val_loss: 1.9926 - val_accuracy: 0.8818\n",
      "Epoch 32/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0259 - accuracy: 0.9954 - val_loss: 2.5370 - val_accuracy: 0.8682\n",
      "Epoch 33/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1018 - accuracy: 0.9834 - val_loss: 3.0525 - val_accuracy: 0.8716\n",
      "Epoch 34/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.4536 - accuracy: 0.9646 - val_loss: 2.9394 - val_accuracy: 0.8408\n",
      "Epoch 35/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.4792 - accuracy: 0.9554 - val_loss: 3.0342 - val_accuracy: 0.8408\n",
      "Epoch 36/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2302 - accuracy: 0.9726 - val_loss: 3.6135 - val_accuracy: 0.8236\n",
      "Epoch 37/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2172 - accuracy: 0.9783 - val_loss: 2.8617 - val_accuracy: 0.8853\n",
      "Epoch 38/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1827 - accuracy: 0.9863 - val_loss: 2.9178 - val_accuracy: 0.8767\n",
      "Epoch 39/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1313 - accuracy: 0.9851 - val_loss: 3.8624 - val_accuracy: 0.8493\n",
      "Epoch 40/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2520 - accuracy: 0.9777 - val_loss: 4.9626 - val_accuracy: 0.8202\n",
      "Epoch 41/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2788 - accuracy: 0.9766 - val_loss: 3.3362 - val_accuracy: 0.8579\n",
      "Epoch 42/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.3968 - accuracy: 0.9686 - val_loss: 3.8477 - val_accuracy: 0.8545\n",
      "Epoch 43/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2578 - accuracy: 0.9777 - val_loss: 2.9400 - val_accuracy: 0.8836\n",
      "Epoch 44/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2177 - accuracy: 0.9834 - val_loss: 3.0693 - val_accuracy: 0.8853\n",
      "Epoch 45/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2385 - accuracy: 0.9800 - val_loss: 4.1339 - val_accuracy: 0.8305\n",
      "Epoch 46/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1352 - accuracy: 0.9851 - val_loss: 3.6896 - val_accuracy: 0.8716\n",
      "Epoch 47/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.3593 - accuracy: 0.9726 - val_loss: 4.3279 - val_accuracy: 0.8613\n",
      "Epoch 48/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2289 - accuracy: 0.9823 - val_loss: 3.7967 - val_accuracy: 0.8784\n",
      "Epoch 49/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2745 - accuracy: 0.9771 - val_loss: 4.9450 - val_accuracy: 0.8664\n",
      "Epoch 50/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2106 - accuracy: 0.9823 - val_loss: 4.1690 - val_accuracy: 0.8682\n",
      "Epoch 51/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2170 - accuracy: 0.9800 - val_loss: 3.6152 - val_accuracy: 0.9161\n",
      "Epoch 52/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.3106 - accuracy: 0.9863 - val_loss: 4.5324 - val_accuracy: 0.8853\n",
      "Epoch 53/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2921 - accuracy: 0.9834 - val_loss: 3.9294 - val_accuracy: 0.8990\n",
      "Epoch 54/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0915 - accuracy: 0.9920 - val_loss: 3.8490 - val_accuracy: 0.8887\n",
      "Epoch 55/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0726 - accuracy: 0.9920 - val_loss: 4.0936 - val_accuracy: 0.8938\n",
      "Epoch 56/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0582 - accuracy: 0.9920 - val_loss: 4.7511 - val_accuracy: 0.8836\n",
      "Epoch 57/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0085 - accuracy: 0.9977 - val_loss: 3.9351 - val_accuracy: 0.9007\n",
      "Epoch 58/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0244 - accuracy: 0.9977 - val_loss: 4.1912 - val_accuracy: 0.8955\n",
      "Epoch 59/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0189 - accuracy: 0.9983 - val_loss: 4.0498 - val_accuracy: 0.9075\n",
      "Epoch 60/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2661 - accuracy: 0.9914 - val_loss: 4.6715 - val_accuracy: 0.8853\n",
      "Epoch 61/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0961 - accuracy: 0.9937 - val_loss: 3.8713 - val_accuracy: 0.8921\n",
      "Epoch 62/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0947 - accuracy: 0.9920 - val_loss: 4.2525 - val_accuracy: 0.8921\n",
      "Epoch 63/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2382 - accuracy: 0.9828 - val_loss: 7.9645 - val_accuracy: 0.8527\n",
      "Epoch 64/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.4834 - accuracy: 0.9800 - val_loss: 5.9559 - val_accuracy: 0.8955\n",
      "Epoch 65/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.4473 - accuracy: 0.9857 - val_loss: 6.3846 - val_accuracy: 0.8870\n",
      "Epoch 66/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1163 - accuracy: 0.9914 - val_loss: 6.2245 - val_accuracy: 0.9007\n",
      "Epoch 67/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1837 - accuracy: 0.9903 - val_loss: 6.6645 - val_accuracy: 0.9007\n",
      "Epoch 68/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.3932 - accuracy: 0.9851 - val_loss: 5.3154 - val_accuracy: 0.8836\n",
      "Epoch 69/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2296 - accuracy: 0.9874 - val_loss: 5.8345 - val_accuracy: 0.8921\n",
      "Epoch 70/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2260 - accuracy: 0.9891 - val_loss: 5.8072 - val_accuracy: 0.8818\n",
      "Epoch 71/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.3118 - accuracy: 0.9857 - val_loss: 4.8241 - val_accuracy: 0.8921\n",
      "Epoch 72/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1417 - accuracy: 0.9920 - val_loss: 5.5699 - val_accuracy: 0.8801\n",
      "Epoch 73/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2165 - accuracy: 0.9903 - val_loss: 6.5648 - val_accuracy: 0.8784\n",
      "Epoch 74/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.2826 - accuracy: 0.9880 - val_loss: 6.3861 - val_accuracy: 0.8630\n",
      "Epoch 75/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0725 - accuracy: 0.9937 - val_loss: 4.1266 - val_accuracy: 0.9195\n",
      "Epoch 76/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1673 - accuracy: 0.9943 - val_loss: 4.7448 - val_accuracy: 0.9127\n",
      "Epoch 77/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1556 - accuracy: 0.9931 - val_loss: 5.1359 - val_accuracy: 0.9092\n",
      "Epoch 78/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0434 - accuracy: 0.9971 - val_loss: 5.0247 - val_accuracy: 0.9127\n",
      "Epoch 79/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1353 - accuracy: 0.9937 - val_loss: 5.6787 - val_accuracy: 0.9041\n",
      "Epoch 80/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.1332 - accuracy: 0.9960 - val_loss: 4.9233 - val_accuracy: 0.9264\n",
      "Epoch 81/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0122 - accuracy: 0.9983 - val_loss: 4.3627 - val_accuracy: 0.9247\n",
      "Epoch 82/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0172 - accuracy: 0.9977 - val_loss: 4.3177 - val_accuracy: 0.9229\n",
      "Epoch 83/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0189 - accuracy: 0.9983 - val_loss: 4.3278 - val_accuracy: 0.9247\n",
      "Epoch 84/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.1523e-06 - accuracy: 1.0000 - val_loss: 4.2724 - val_accuracy: 0.9247\n",
      "Epoch 85/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3970e-06 - accuracy: 1.0000 - val_loss: 4.2710 - val_accuracy: 0.9247\n",
      "Epoch 86/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0772e-06 - accuracy: 1.0000 - val_loss: 4.2700 - val_accuracy: 0.9247\n",
      "Epoch 87/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 9.2986e-07 - accuracy: 1.0000 - val_loss: 4.2689 - val_accuracy: 0.9247\n",
      "Epoch 88/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.7514e-07 - accuracy: 1.0000 - val_loss: 4.2681 - val_accuracy: 0.9247\n",
      "Epoch 89/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.7962e-07 - accuracy: 1.0000 - val_loss: 4.2678 - val_accuracy: 0.9247\n",
      "Epoch 90/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.1182e-07 - accuracy: 1.0000 - val_loss: 4.2675 - val_accuracy: 0.9247\n",
      "Epoch 91/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.5697e-07 - accuracy: 1.0000 - val_loss: 4.2669 - val_accuracy: 0.9247\n",
      "Epoch 92/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.0369e-07 - accuracy: 1.0000 - val_loss: 4.2666 - val_accuracy: 0.9247\n",
      "Epoch 93/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.5708e-07 - accuracy: 1.0000 - val_loss: 4.2663 - val_accuracy: 0.9247\n",
      "Epoch 94/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.2321e-07 - accuracy: 1.0000 - val_loss: 4.2660 - val_accuracy: 0.9247\n",
      "Epoch 95/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.8683e-07 - accuracy: 1.0000 - val_loss: 4.2658 - val_accuracy: 0.9247\n",
      "Epoch 96/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 3.6822e-07 - accuracy: 1.0000 - val_loss: 4.2657 - val_accuracy: 0.9247\n",
      "Epoch 97/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.3906e-07 - accuracy: 1.0000 - val_loss: 4.2656 - val_accuracy: 0.9247\n",
      "Epoch 98/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.2236e-07 - accuracy: 1.0000 - val_loss: 4.2650 - val_accuracy: 0.9247\n",
      "Epoch 99/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.0260e-07 - accuracy: 1.0000 - val_loss: 4.2647 - val_accuracy: 0.9247\n",
      "Epoch 100/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.8835e-07 - accuracy: 1.0000 - val_loss: 4.2646 - val_accuracy: 0.9247\n",
      "Epoch 101/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7343e-07 - accuracy: 1.0000 - val_loss: 4.2644 - val_accuracy: 0.9247\n",
      "Epoch 102/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.6028e-07 - accuracy: 1.0000 - val_loss: 4.2643 - val_accuracy: 0.9247\n",
      "Epoch 103/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.4603e-07 - accuracy: 1.0000 - val_loss: 4.2638 - val_accuracy: 0.9247\n",
      "Epoch 104/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.3418e-07 - accuracy: 1.0000 - val_loss: 4.2635 - val_accuracy: 0.9247\n",
      "Epoch 105/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.2246e-07 - accuracy: 1.0000 - val_loss: 4.2633 - val_accuracy: 0.9247\n",
      "Epoch 106/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.1298e-07 - accuracy: 1.0000 - val_loss: 4.2632 - val_accuracy: 0.9247\n",
      "Epoch 107/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0106e-07 - accuracy: 1.0000 - val_loss: 4.2634 - val_accuracy: 0.9247\n",
      "Epoch 108/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.9458e-07 - accuracy: 1.0000 - val_loss: 4.2630 - val_accuracy: 0.9247\n",
      "Epoch 109/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8531e-07 - accuracy: 1.0000 - val_loss: 4.2629 - val_accuracy: 0.9247\n",
      "Epoch 110/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 1.7788e-07 - accuracy: 1.0000 - val_loss: 4.2630 - val_accuracy: 0.9247\n",
      "Epoch 111/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.7243e-07 - accuracy: 1.0000 - val_loss: 4.2625 - val_accuracy: 0.9247\n",
      "Epoch 112/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.6255e-07 - accuracy: 1.0000 - val_loss: 4.2624 - val_accuracy: 0.9247\n",
      "Epoch 113/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.5717e-07 - accuracy: 1.0000 - val_loss: 4.2621 - val_accuracy: 0.9247\n",
      "Epoch 114/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.5144e-07 - accuracy: 1.0000 - val_loss: 4.2620 - val_accuracy: 0.9247\n",
      "Epoch 115/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.4497e-07 - accuracy: 1.0000 - val_loss: 4.2621 - val_accuracy: 0.9247\n",
      "Epoch 116/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.4006e-07 - accuracy: 1.0000 - val_loss: 4.2618 - val_accuracy: 0.9247\n",
      "Epoch 117/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3461e-07 - accuracy: 1.0000 - val_loss: 4.2616 - val_accuracy: 0.9247\n",
      "Epoch 118/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3018e-07 - accuracy: 1.0000 - val_loss: 4.2619 - val_accuracy: 0.9247\n",
      "Epoch 119/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.2534e-07 - accuracy: 1.0000 - val_loss: 4.2619 - val_accuracy: 0.9247\n",
      "Epoch 120/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.2077e-07 - accuracy: 1.0000 - val_loss: 4.2616 - val_accuracy: 0.9247\n",
      "Epoch 121/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1641e-07 - accuracy: 1.0000 - val_loss: 4.2614 - val_accuracy: 0.9247\n",
      "Epoch 122/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1225e-07 - accuracy: 1.0000 - val_loss: 4.2614 - val_accuracy: 0.9247\n",
      "Epoch 123/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0885e-07 - accuracy: 1.0000 - val_loss: 4.2613 - val_accuracy: 0.9247\n",
      "Epoch 124/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0523e-07 - accuracy: 1.0000 - val_loss: 4.2613 - val_accuracy: 0.9247\n",
      "Epoch 125/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0101e-07 - accuracy: 1.0000 - val_loss: 4.2612 - val_accuracy: 0.9247\n",
      "Epoch 126/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 9.7873e-08 - accuracy: 1.0000 - val_loss: 4.2608 - val_accuracy: 0.9247\n",
      "Epoch 127/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 9.4806e-08 - accuracy: 1.0000 - val_loss: 4.2608 - val_accuracy: 0.9247\n",
      "Epoch 128/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 9.1262e-08 - accuracy: 1.0000 - val_loss: 4.2607 - val_accuracy: 0.9247\n",
      "Epoch 129/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 8.9354e-08 - accuracy: 1.0000 - val_loss: 4.2605 - val_accuracy: 0.9247\n",
      "Epoch 130/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.6900e-08 - accuracy: 1.0000 - val_loss: 4.2603 - val_accuracy: 0.9247\n",
      "Epoch 131/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.3901e-08 - accuracy: 1.0000 - val_loss: 4.2602 - val_accuracy: 0.9247\n",
      "Epoch 132/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 8.1652e-08 - accuracy: 1.0000 - val_loss: 4.2600 - val_accuracy: 0.9247\n",
      "Epoch 133/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.9130e-08 - accuracy: 1.0000 - val_loss: 4.2598 - val_accuracy: 0.9247\n",
      "Epoch 134/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.5859e-08 - accuracy: 1.0000 - val_loss: 4.2599 - val_accuracy: 0.9247\n",
      "Epoch 135/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.3337e-08 - accuracy: 1.0000 - val_loss: 4.2597 - val_accuracy: 0.9247\n",
      "Epoch 136/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.1429e-08 - accuracy: 1.0000 - val_loss: 4.2594 - val_accuracy: 0.9247\n",
      "Epoch 137/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.9452e-08 - accuracy: 1.0000 - val_loss: 4.2593 - val_accuracy: 0.9247\n",
      "Epoch 138/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.7612e-08 - accuracy: 1.0000 - val_loss: 4.2592 - val_accuracy: 0.9247\n",
      "Epoch 139/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.5499e-08 - accuracy: 1.0000 - val_loss: 4.2591 - val_accuracy: 0.9247\n",
      "Epoch 140/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.3727e-08 - accuracy: 1.0000 - val_loss: 4.2590 - val_accuracy: 0.9247\n",
      "Epoch 141/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.2568e-08 - accuracy: 1.0000 - val_loss: 4.2591 - val_accuracy: 0.9247\n",
      "Epoch 142/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.0728e-08 - accuracy: 1.0000 - val_loss: 4.2588 - val_accuracy: 0.9247\n",
      "Epoch 143/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.8002e-08 - accuracy: 1.0000 - val_loss: 4.2587 - val_accuracy: 0.9247\n",
      "Epoch 144/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.6230e-08 - accuracy: 1.0000 - val_loss: 4.2588 - val_accuracy: 0.9247\n",
      "Epoch 145/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.4935e-08 - accuracy: 1.0000 - val_loss: 4.2585 - val_accuracy: 0.9247\n",
      "Epoch 146/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.3572e-08 - accuracy: 1.0000 - val_loss: 4.2584 - val_accuracy: 0.9247\n",
      "Epoch 147/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.2209e-08 - accuracy: 1.0000 - val_loss: 4.2582 - val_accuracy: 0.9247\n",
      "Epoch 148/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.0641e-08 - accuracy: 1.0000 - val_loss: 4.2581 - val_accuracy: 0.9247\n",
      "Epoch 149/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.9551e-08 - accuracy: 1.0000 - val_loss: 4.2578 - val_accuracy: 0.9247\n",
      "Epoch 150/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.7983e-08 - accuracy: 1.0000 - val_loss: 4.2577 - val_accuracy: 0.9247\n",
      "Epoch 151/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.6892e-08 - accuracy: 1.0000 - val_loss: 4.2577 - val_accuracy: 0.9247\n",
      "Epoch 152/500\n",
      "50/50 [==============================] - ETA: 0s - loss: 3.2536e-08 - accuracy: 1.00 - 0s 5ms/step - loss: 4.5802e-08 - accuracy: 1.0000 - val_loss: 4.2576 - val_accuracy: 0.9247\n",
      "Epoch 153/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.4643e-08 - accuracy: 1.0000 - val_loss: 4.2575 - val_accuracy: 0.9247\n",
      "Epoch 154/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.3621e-08 - accuracy: 1.0000 - val_loss: 4.2572 - val_accuracy: 0.9247\n",
      "Epoch 155/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.2462e-08 - accuracy: 1.0000 - val_loss: 4.2572 - val_accuracy: 0.9247\n",
      "Epoch 156/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.1440e-08 - accuracy: 1.0000 - val_loss: 4.2572 - val_accuracy: 0.9247\n",
      "Epoch 157/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.0281e-08 - accuracy: 1.0000 - val_loss: 4.2571 - val_accuracy: 0.9247\n",
      "Epoch 158/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.9054e-08 - accuracy: 1.0000 - val_loss: 4.2571 - val_accuracy: 0.9247\n",
      "Epoch 159/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.8237e-08 - accuracy: 1.0000 - val_loss: 4.2571 - val_accuracy: 0.9247\n",
      "Epoch 160/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.7078e-08 - accuracy: 1.0000 - val_loss: 4.2570 - val_accuracy: 0.9247\n",
      "Epoch 161/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.6464e-08 - accuracy: 1.0000 - val_loss: 4.2569 - val_accuracy: 0.9247\n",
      "Epoch 162/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.5442e-08 - accuracy: 1.0000 - val_loss: 4.2567 - val_accuracy: 0.9247\n",
      "Epoch 163/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4829e-08 - accuracy: 1.0000 - val_loss: 4.2564 - val_accuracy: 0.9247\n",
      "Epoch 164/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.3534e-08 - accuracy: 1.0000 - val_loss: 4.2564 - val_accuracy: 0.9247\n",
      "Epoch 165/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.2920e-08 - accuracy: 1.0000 - val_loss: 4.2564 - val_accuracy: 0.9247\n",
      "Epoch 166/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.1966e-08 - accuracy: 1.0000 - val_loss: 4.2562 - val_accuracy: 0.9247\n",
      "Epoch 167/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.1353e-08 - accuracy: 1.0000 - val_loss: 4.2560 - val_accuracy: 0.9247\n",
      "Epoch 168/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.0671e-08 - accuracy: 1.0000 - val_loss: 4.2557 - val_accuracy: 0.9247\n",
      "Epoch 169/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.9990e-08 - accuracy: 1.0000 - val_loss: 4.2554 - val_accuracy: 0.9247\n",
      "Epoch 170/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.9308e-08 - accuracy: 1.0000 - val_loss: 4.2556 - val_accuracy: 0.9247\n",
      "Epoch 171/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.8081e-08 - accuracy: 1.0000 - val_loss: 4.2554 - val_accuracy: 0.9247\n",
      "Epoch 172/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7468e-08 - accuracy: 1.0000 - val_loss: 4.2551 - val_accuracy: 0.9247\n",
      "Epoch 173/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.6650e-08 - accuracy: 1.0000 - val_loss: 4.2552 - val_accuracy: 0.9247\n",
      "Epoch 174/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.6241e-08 - accuracy: 1.0000 - val_loss: 4.2549 - val_accuracy: 0.9247\n",
      "Epoch 175/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.5219e-08 - accuracy: 1.0000 - val_loss: 4.2546 - val_accuracy: 0.9247\n",
      "Epoch 176/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.4673e-08 - accuracy: 1.0000 - val_loss: 4.2547 - val_accuracy: 0.9247\n",
      "Epoch 177/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.3992e-08 - accuracy: 1.0000 - val_loss: 4.2546 - val_accuracy: 0.9247\n",
      "Epoch 178/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.3583e-08 - accuracy: 1.0000 - val_loss: 4.2544 - val_accuracy: 0.9247\n",
      "Epoch 179/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.2765e-08 - accuracy: 1.0000 - val_loss: 4.2544 - val_accuracy: 0.9247\n",
      "Epoch 180/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.2424e-08 - accuracy: 1.0000 - val_loss: 4.2544 - val_accuracy: 0.9247\n",
      "Epoch 181/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.1742e-08 - accuracy: 1.0000 - val_loss: 4.2543 - val_accuracy: 0.9247\n",
      "Epoch 182/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.1129e-08 - accuracy: 1.0000 - val_loss: 4.2543 - val_accuracy: 0.9247\n",
      "Epoch 183/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0788e-08 - accuracy: 1.0000 - val_loss: 4.2541 - val_accuracy: 0.9247\n",
      "Epoch 184/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0379e-08 - accuracy: 1.0000 - val_loss: 4.2545 - val_accuracy: 0.9247\n",
      "Epoch 185/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.9902e-08 - accuracy: 1.0000 - val_loss: 4.2543 - val_accuracy: 0.9247\n",
      "Epoch 186/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.9221e-08 - accuracy: 1.0000 - val_loss: 4.2543 - val_accuracy: 0.9247\n",
      "Epoch 187/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.9084e-08 - accuracy: 1.0000 - val_loss: 4.2541 - val_accuracy: 0.9247\n",
      "Epoch 188/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8607e-08 - accuracy: 1.0000 - val_loss: 4.2542 - val_accuracy: 0.9247\n",
      "Epoch 189/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8130e-08 - accuracy: 1.0000 - val_loss: 4.2539 - val_accuracy: 0.9247\n",
      "Epoch 190/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.7517e-08 - accuracy: 1.0000 - val_loss: 4.2538 - val_accuracy: 0.9247\n",
      "Epoch 191/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.7040e-08 - accuracy: 1.0000 - val_loss: 4.2538 - val_accuracy: 0.9247\n",
      "Epoch 192/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.6631e-08 - accuracy: 1.0000 - val_loss: 4.2535 - val_accuracy: 0.9247\n",
      "Epoch 193/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.6358e-08 - accuracy: 1.0000 - val_loss: 4.2535 - val_accuracy: 0.9247\n",
      "Epoch 194/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.6017e-08 - accuracy: 1.0000 - val_loss: 4.2534 - val_accuracy: 0.9247\n",
      "Epoch 195/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.5745e-08 - accuracy: 1.0000 - val_loss: 4.2534 - val_accuracy: 0.9247\n",
      "Epoch 196/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.5267e-08 - accuracy: 1.0000 - val_loss: 4.2531 - val_accuracy: 0.9247\n",
      "Epoch 197/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.4995e-08 - accuracy: 1.0000 - val_loss: 4.2530 - val_accuracy: 0.9247\n",
      "Epoch 198/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.4450e-08 - accuracy: 1.0000 - val_loss: 4.2526 - val_accuracy: 0.9247\n",
      "Epoch 199/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.4177e-08 - accuracy: 1.0000 - val_loss: 4.2524 - val_accuracy: 0.9247\n",
      "Epoch 200/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3836e-08 - accuracy: 1.0000 - val_loss: 4.2523 - val_accuracy: 0.9247\n",
      "Epoch 201/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3564e-08 - accuracy: 1.0000 - val_loss: 4.2523 - val_accuracy: 0.9247\n",
      "Epoch 202/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3223e-08 - accuracy: 1.0000 - val_loss: 4.2524 - val_accuracy: 0.9247\n",
      "Epoch 203/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3018e-08 - accuracy: 1.0000 - val_loss: 4.2524 - val_accuracy: 0.9247\n",
      "Epoch 204/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.2541e-08 - accuracy: 1.0000 - val_loss: 4.2521 - val_accuracy: 0.9247\n",
      "Epoch 205/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.2405e-08 - accuracy: 1.0000 - val_loss: 4.2520 - val_accuracy: 0.9247\n",
      "Epoch 206/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.2132e-08 - accuracy: 1.0000 - val_loss: 4.2517 - val_accuracy: 0.9247\n",
      "Epoch 207/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1928e-08 - accuracy: 1.0000 - val_loss: 4.2517 - val_accuracy: 0.9247\n",
      "Epoch 208/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1587e-08 - accuracy: 1.0000 - val_loss: 4.2516 - val_accuracy: 0.9247\n",
      "Epoch 209/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1246e-08 - accuracy: 1.0000 - val_loss: 4.2511 - val_accuracy: 0.9247\n",
      "Epoch 210/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0905e-08 - accuracy: 1.0000 - val_loss: 4.2512 - val_accuracy: 0.9247\n",
      "Epoch 211/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0769e-08 - accuracy: 1.0000 - val_loss: 4.2513 - val_accuracy: 0.9247\n",
      "Epoch 212/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0496e-08 - accuracy: 1.0000 - val_loss: 4.2511 - val_accuracy: 0.9247\n",
      "Epoch 213/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0360e-08 - accuracy: 1.0000 - val_loss: 4.2509 - val_accuracy: 0.9247\n",
      "Epoch 214/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0019e-08 - accuracy: 1.0000 - val_loss: 4.2510 - val_accuracy: 0.9247\n",
      "Epoch 215/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 9.8830e-09 - accuracy: 1.0000 - val_loss: 4.2509 - val_accuracy: 0.9247\n",
      "Epoch 216/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 9.4740e-09 - accuracy: 1.0000 - val_loss: 4.2505 - val_accuracy: 0.9247\n",
      "Epoch 217/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 9.2014e-09 - accuracy: 1.0000 - val_loss: 4.2504 - val_accuracy: 0.9247\n",
      "Epoch 218/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.9288e-09 - accuracy: 1.0000 - val_loss: 4.2503 - val_accuracy: 0.9247\n",
      "Epoch 219/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.7924e-09 - accuracy: 1.0000 - val_loss: 4.2502 - val_accuracy: 0.9247\n",
      "Epoch 220/500\n",
      "50/50 [==============================] - ETA: 0s - loss: 4.3919e-09 - accuracy: 1.00 - 0s 5ms/step - loss: 8.6561e-09 - accuracy: 1.0000 - val_loss: 4.2501 - val_accuracy: 0.9247\n",
      "Epoch 221/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.3835e-09 - accuracy: 1.0000 - val_loss: 4.2502 - val_accuracy: 0.9247\n",
      "Epoch 222/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.3153e-09 - accuracy: 1.0000 - val_loss: 4.2500 - val_accuracy: 0.9247\n",
      "Epoch 223/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.9745e-09 - accuracy: 1.0000 - val_loss: 4.2499 - val_accuracy: 0.9247\n",
      "Epoch 224/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.8382e-09 - accuracy: 1.0000 - val_loss: 4.2498 - val_accuracy: 0.9247\n",
      "Epoch 225/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.7019e-09 - accuracy: 1.0000 - val_loss: 4.2497 - val_accuracy: 0.9247\n",
      "Epoch 226/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.4974e-09 - accuracy: 1.0000 - val_loss: 4.2496 - val_accuracy: 0.9247\n",
      "Epoch 227/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.3611e-09 - accuracy: 1.0000 - val_loss: 4.2497 - val_accuracy: 0.9247\n",
      "Epoch 228/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.1566e-09 - accuracy: 1.0000 - val_loss: 4.2498 - val_accuracy: 0.9247\n",
      "Epoch 229/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 6.9522e-09 - accuracy: 1.0000 - val_loss: 4.2499 - val_accuracy: 0.9247\n",
      "Epoch 230/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8158e-09 - accuracy: 1.0000 - val_loss: 4.2496 - val_accuracy: 0.9247\n",
      "Epoch 231/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.6114e-09 - accuracy: 1.0000 - val_loss: 4.2495 - val_accuracy: 0.9247\n",
      "Epoch 232/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.4751e-09 - accuracy: 1.0000 - val_loss: 4.2495 - val_accuracy: 0.9247\n",
      "Epoch 233/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.4069e-09 - accuracy: 1.0000 - val_loss: 4.2493 - val_accuracy: 0.9247\n",
      "Epoch 234/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 6.2706e-09 - accuracy: 1.0000 - val_loss: 4.2493 - val_accuracy: 0.9247\n",
      "Epoch 235/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.1343e-09 - accuracy: 1.0000 - val_loss: 4.2491 - val_accuracy: 0.9247\n",
      "Epoch 236/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.9298e-09 - accuracy: 1.0000 - val_loss: 4.2490 - val_accuracy: 0.9247\n",
      "Epoch 237/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 5.8616e-09 - accuracy: 1.0000 - val_loss: 4.2487 - val_accuracy: 0.9247\n",
      "Epoch 238/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.7253e-09 - accuracy: 1.0000 - val_loss: 4.2485 - val_accuracy: 0.9247\n",
      "Epoch 239/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.5890e-09 - accuracy: 1.0000 - val_loss: 4.2482 - val_accuracy: 0.9247\n",
      "Epoch 240/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 5.3845e-09 - accuracy: 1.0000 - val_loss: 4.2481 - val_accuracy: 0.9247\n",
      "Epoch 241/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.1800e-09 - accuracy: 1.0000 - val_loss: 4.2478 - val_accuracy: 0.9247\n",
      "Epoch 242/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.0437e-09 - accuracy: 1.0000 - val_loss: 4.2477 - val_accuracy: 0.9247\n",
      "Epoch 243/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.9756e-09 - accuracy: 1.0000 - val_loss: 4.2475 - val_accuracy: 0.9247\n",
      "Epoch 244/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.9074e-09 - accuracy: 1.0000 - val_loss: 4.2473 - val_accuracy: 0.9247\n",
      "Epoch 245/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.7029e-09 - accuracy: 1.0000 - val_loss: 4.2469 - val_accuracy: 0.9247\n",
      "Epoch 246/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.6348e-09 - accuracy: 1.0000 - val_loss: 4.2468 - val_accuracy: 0.9247\n",
      "Epoch 247/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.4985e-09 - accuracy: 1.0000 - val_loss: 4.2468 - val_accuracy: 0.9247\n",
      "Epoch 248/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.3621e-09 - accuracy: 1.0000 - val_loss: 4.2467 - val_accuracy: 0.9247\n",
      "Epoch 249/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.2940e-09 - accuracy: 1.0000 - val_loss: 4.2468 - val_accuracy: 0.9247\n",
      "Epoch 250/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.1577e-09 - accuracy: 1.0000 - val_loss: 4.2469 - val_accuracy: 0.9247\n",
      "Epoch 251/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.0895e-09 - accuracy: 1.0000 - val_loss: 4.2469 - val_accuracy: 0.9247\n",
      "Epoch 252/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.9532e-09 - accuracy: 1.0000 - val_loss: 4.2466 - val_accuracy: 0.9247\n",
      "Epoch 253/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.9532e-09 - accuracy: 1.0000 - val_loss: 4.2465 - val_accuracy: 0.9247\n",
      "Epoch 254/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.8169e-09 - accuracy: 1.0000 - val_loss: 4.2464 - val_accuracy: 0.9247\n",
      "Epoch 255/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.6806e-09 - accuracy: 1.0000 - val_loss: 4.2462 - val_accuracy: 0.9247\n",
      "Epoch 256/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.6806e-09 - accuracy: 1.0000 - val_loss: 4.2463 - val_accuracy: 0.9247\n",
      "Epoch 257/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.6124e-09 - accuracy: 1.0000 - val_loss: 4.2459 - val_accuracy: 0.9247\n",
      "Epoch 258/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.5442e-09 - accuracy: 1.0000 - val_loss: 4.2457 - val_accuracy: 0.9247\n",
      "Epoch 259/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.5442e-09 - accuracy: 1.0000 - val_loss: 4.2457 - val_accuracy: 0.9247\n",
      "Epoch 260/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.3398e-09 - accuracy: 1.0000 - val_loss: 4.2456 - val_accuracy: 0.9247\n",
      "Epoch 261/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.3398e-09 - accuracy: 1.0000 - val_loss: 4.2456 - val_accuracy: 0.9247\n",
      "Epoch 262/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.2034e-09 - accuracy: 1.0000 - val_loss: 4.2456 - val_accuracy: 0.9247\n",
      "Epoch 263/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.2034e-09 - accuracy: 1.0000 - val_loss: 4.2458 - val_accuracy: 0.9247\n",
      "Epoch 264/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.0671e-09 - accuracy: 1.0000 - val_loss: 4.2456 - val_accuracy: 0.9247\n",
      "Epoch 265/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.9308e-09 - accuracy: 1.0000 - val_loss: 4.2454 - val_accuracy: 0.9247\n",
      "Epoch 266/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.9308e-09 - accuracy: 1.0000 - val_loss: 4.2454 - val_accuracy: 0.9247\n",
      "Epoch 267/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.8627e-09 - accuracy: 1.0000 - val_loss: 4.2453 - val_accuracy: 0.9247\n",
      "Epoch 268/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7945e-09 - accuracy: 1.0000 - val_loss: 4.2449 - val_accuracy: 0.9247\n",
      "Epoch 269/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7263e-09 - accuracy: 1.0000 - val_loss: 4.2450 - val_accuracy: 0.9247\n",
      "Epoch 270/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7263e-09 - accuracy: 1.0000 - val_loss: 4.2451 - val_accuracy: 0.9247\n",
      "Epoch 271/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.5900e-09 - accuracy: 1.0000 - val_loss: 4.2447 - val_accuracy: 0.9247\n",
      "Epoch 272/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.5219e-09 - accuracy: 1.0000 - val_loss: 4.2447 - val_accuracy: 0.9247\n",
      "Epoch 273/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.4537e-09 - accuracy: 1.0000 - val_loss: 4.2446 - val_accuracy: 0.9247\n",
      "Epoch 274/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.4537e-09 - accuracy: 1.0000 - val_loss: 4.2444 - val_accuracy: 0.9247\n",
      "Epoch 275/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.3174e-09 - accuracy: 1.0000 - val_loss: 4.2443 - val_accuracy: 0.9247\n",
      "Epoch 276/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.2492e-09 - accuracy: 1.0000 - val_loss: 4.2440 - val_accuracy: 0.9247\n",
      "Epoch 277/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.1811e-09 - accuracy: 1.0000 - val_loss: 4.2440 - val_accuracy: 0.9247\n",
      "Epoch 278/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.1811e-09 - accuracy: 1.0000 - val_loss: 4.2438 - val_accuracy: 0.9247\n",
      "Epoch 279/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.1129e-09 - accuracy: 1.0000 - val_loss: 4.2436 - val_accuracy: 0.9247\n",
      "Epoch 280/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.1129e-09 - accuracy: 1.0000 - val_loss: 4.2437 - val_accuracy: 0.9247\n",
      "Epoch 281/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.1129e-09 - accuracy: 1.0000 - val_loss: 4.2434 - val_accuracy: 0.9247\n",
      "Epoch 282/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0448e-09 - accuracy: 1.0000 - val_loss: 4.2432 - val_accuracy: 0.9247\n",
      "Epoch 283/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.9084e-09 - accuracy: 1.0000 - val_loss: 4.2432 - val_accuracy: 0.9247\n",
      "Epoch 284/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.9084e-09 - accuracy: 1.0000 - val_loss: 4.2432 - val_accuracy: 0.9247\n",
      "Epoch 285/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8403e-09 - accuracy: 1.0000 - val_loss: 4.2429 - val_accuracy: 0.9247\n",
      "Epoch 286/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8403e-09 - accuracy: 1.0000 - val_loss: 4.2427 - val_accuracy: 0.9247\n",
      "Epoch 287/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8403e-09 - accuracy: 1.0000 - val_loss: 4.2427 - val_accuracy: 0.9247\n",
      "Epoch 288/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8403e-09 - accuracy: 1.0000 - val_loss: 4.2426 - val_accuracy: 0.9247\n",
      "Epoch 289/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.8403e-09 - accuracy: 1.0000 - val_loss: 4.2425 - val_accuracy: 0.9247\n",
      "Epoch 290/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 1.8403e-09 - accuracy: 1.0000 - val_loss: 4.2425 - val_accuracy: 0.9247\n",
      "Epoch 291/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.6358e-09 - accuracy: 1.0000 - val_loss: 4.2423 - val_accuracy: 0.9247\n",
      "Epoch 292/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.6358e-09 - accuracy: 1.0000 - val_loss: 4.2424 - val_accuracy: 0.9247\n",
      "Epoch 293/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.6358e-09 - accuracy: 1.0000 - val_loss: 4.2421 - val_accuracy: 0.9247\n",
      "Epoch 294/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.5676e-09 - accuracy: 1.0000 - val_loss: 4.2422 - val_accuracy: 0.9247\n",
      "Epoch 295/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.5676e-09 - accuracy: 1.0000 - val_loss: 4.2422 - val_accuracy: 0.9247\n",
      "Epoch 296/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.5676e-09 - accuracy: 1.0000 - val_loss: 4.2420 - val_accuracy: 0.9247\n",
      "Epoch 297/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.4995e-09 - accuracy: 1.0000 - val_loss: 4.2417 - val_accuracy: 0.9247\n",
      "Epoch 298/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.4995e-09 - accuracy: 1.0000 - val_loss: 4.2416 - val_accuracy: 0.9247\n",
      "Epoch 299/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.4313e-09 - accuracy: 1.0000 - val_loss: 4.2414 - val_accuracy: 0.9247\n",
      "Epoch 300/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 1.3632e-09 - accuracy: 1.0000 - val_loss: 4.2412 - val_accuracy: 0.9247\n",
      "Epoch 301/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 1.2950e-09 - accuracy: 1.0000 - val_loss: 4.2412 - val_accuracy: 0.9247\n",
      "Epoch 302/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.2269e-09 - accuracy: 1.0000 - val_loss: 4.2409 - val_accuracy: 0.9247\n",
      "Epoch 303/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.2269e-09 - accuracy: 1.0000 - val_loss: 4.2407 - val_accuracy: 0.9247\n",
      "Epoch 304/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.2269e-09 - accuracy: 1.0000 - val_loss: 4.2406 - val_accuracy: 0.9247\n",
      "Epoch 305/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1587e-09 - accuracy: 1.0000 - val_loss: 4.2408 - val_accuracy: 0.9247\n",
      "Epoch 306/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1587e-09 - accuracy: 1.0000 - val_loss: 4.2406 - val_accuracy: 0.9247\n",
      "Epoch 307/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1587e-09 - accuracy: 1.0000 - val_loss: 4.2403 - val_accuracy: 0.9247\n",
      "Epoch 308/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1587e-09 - accuracy: 1.0000 - val_loss: 4.2402 - val_accuracy: 0.9247\n",
      "Epoch 309/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1587e-09 - accuracy: 1.0000 - val_loss: 4.2405 - val_accuracy: 0.9247\n",
      "Epoch 310/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1587e-09 - accuracy: 1.0000 - val_loss: 4.2400 - val_accuracy: 0.9247\n",
      "Epoch 311/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.1587e-09 - accuracy: 1.0000 - val_loss: 4.2402 - val_accuracy: 0.9247\n",
      "Epoch 312/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0905e-09 - accuracy: 1.0000 - val_loss: 4.2401 - val_accuracy: 0.9247\n",
      "Epoch 313/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0905e-09 - accuracy: 1.0000 - val_loss: 4.2396 - val_accuracy: 0.9247\n",
      "Epoch 314/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.0905e-09 - accuracy: 1.0000 - val_loss: 4.2394 - val_accuracy: 0.9247\n",
      "Epoch 315/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 9.5422e-10 - accuracy: 1.0000 - val_loss: 4.2391 - val_accuracy: 0.9247\n",
      "Epoch 316/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.8606e-10 - accuracy: 1.0000 - val_loss: 4.2391 - val_accuracy: 0.9247\n",
      "Epoch 317/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.8606e-10 - accuracy: 1.0000 - val_loss: 4.2392 - val_accuracy: 0.9247\n",
      "Epoch 318/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.1790e-10 - accuracy: 1.0000 - val_loss: 4.2393 - val_accuracy: 0.9247\n",
      "Epoch 319/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 8.1790e-10 - accuracy: 1.0000 - val_loss: 4.2393 - val_accuracy: 0.9247\n",
      "Epoch 320/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.4974e-10 - accuracy: 1.0000 - val_loss: 4.2390 - val_accuracy: 0.9247\n",
      "Epoch 321/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.4974e-10 - accuracy: 1.0000 - val_loss: 4.2391 - val_accuracy: 0.9247\n",
      "Epoch 322/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.4974e-10 - accuracy: 1.0000 - val_loss: 4.2388 - val_accuracy: 0.9247\n",
      "Epoch 323/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.4974e-10 - accuracy: 1.0000 - val_loss: 4.2387 - val_accuracy: 0.9247\n",
      "Epoch 324/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.4974e-10 - accuracy: 1.0000 - val_loss: 4.2383 - val_accuracy: 0.9247\n",
      "Epoch 325/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.4974e-10 - accuracy: 1.0000 - val_loss: 4.2384 - val_accuracy: 0.9247\n",
      "Epoch 326/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 7.4974e-10 - accuracy: 1.0000 - val_loss: 4.2383 - val_accuracy: 0.9247\n",
      "Epoch 327/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-10 - accuracy: 1.0000 - val_loss: 4.2383 - val_accuracy: 0.9264\n",
      "Epoch 328/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-10 - accuracy: 1.0000 - val_loss: 4.2383 - val_accuracy: 0.9264\n",
      "Epoch 329/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-10 - accuracy: 1.0000 - val_loss: 4.2381 - val_accuracy: 0.9264\n",
      "Epoch 330/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.1343e-10 - accuracy: 1.0000 - val_loss: 4.2378 - val_accuracy: 0.9264\n",
      "Epoch 331/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.1343e-10 - accuracy: 1.0000 - val_loss: 4.2377 - val_accuracy: 0.9264\n",
      "Epoch 332/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.1343e-10 - accuracy: 1.0000 - val_loss: 4.2375 - val_accuracy: 0.9264\n",
      "Epoch 333/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.1343e-10 - accuracy: 1.0000 - val_loss: 4.2375 - val_accuracy: 0.9264\n",
      "Epoch 334/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 5.4527e-10 - accuracy: 1.0000 - val_loss: 4.2372 - val_accuracy: 0.9264\n",
      "Epoch 335/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.7711e-10 - accuracy: 1.0000 - val_loss: 4.2372 - val_accuracy: 0.9264\n",
      "Epoch 336/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 4.7711e-10 - accuracy: 1.0000 - val_loss: 4.2370 - val_accuracy: 0.9264\n",
      "Epoch 337/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.7711e-10 - accuracy: 1.0000 - val_loss: 4.2371 - val_accuracy: 0.9264\n",
      "Epoch 338/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.0895e-10 - accuracy: 1.0000 - val_loss: 4.2368 - val_accuracy: 0.9264\n",
      "Epoch 339/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.0895e-10 - accuracy: 1.0000 - val_loss: 4.2367 - val_accuracy: 0.9264\n",
      "Epoch 340/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.0895e-10 - accuracy: 1.0000 - val_loss: 4.2364 - val_accuracy: 0.9264\n",
      "Epoch 341/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.0895e-10 - accuracy: 1.0000 - val_loss: 4.2364 - val_accuracy: 0.9264\n",
      "Epoch 342/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.0895e-10 - accuracy: 1.0000 - val_loss: 4.2362 - val_accuracy: 0.9264\n",
      "Epoch 343/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 4.0895e-10 - accuracy: 1.0000 - val_loss: 4.2363 - val_accuracy: 0.9264\n",
      "Epoch 344/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2358 - val_accuracy: 0.9264\n",
      "Epoch 345/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2356 - val_accuracy: 0.9264\n",
      "Epoch 346/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2353 - val_accuracy: 0.9264\n",
      "Epoch 347/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2352 - val_accuracy: 0.9264\n",
      "Epoch 348/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2351 - val_accuracy: 0.9264\n",
      "Epoch 349/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2351 - val_accuracy: 0.9264\n",
      "Epoch 350/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2349 - val_accuracy: 0.9264\n",
      "Epoch 351/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2348 - val_accuracy: 0.9264\n",
      "Epoch 352/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2345 - val_accuracy: 0.9264\n",
      "Epoch 353/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2346 - val_accuracy: 0.9264\n",
      "Epoch 354/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2346 - val_accuracy: 0.9264\n",
      "Epoch 355/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2343 - val_accuracy: 0.9264\n",
      "Epoch 356/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2342 - val_accuracy: 0.9264\n",
      "Epoch 357/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2339 - val_accuracy: 0.9264\n",
      "Epoch 358/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2338 - val_accuracy: 0.9264\n",
      "Epoch 359/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2336 - val_accuracy: 0.9264\n",
      "Epoch 360/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2333 - val_accuracy: 0.9264\n",
      "Epoch 361/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2331 - val_accuracy: 0.9264\n",
      "Epoch 362/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2332 - val_accuracy: 0.9264\n",
      "Epoch 363/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2331 - val_accuracy: 0.9264\n",
      "Epoch 364/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2331 - val_accuracy: 0.9264\n",
      "Epoch 365/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 3.4079e-10 - accuracy: 1.0000 - val_loss: 4.2326 - val_accuracy: 0.9264\n",
      "Epoch 366/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7263e-10 - accuracy: 1.0000 - val_loss: 4.2323 - val_accuracy: 0.9264\n",
      "Epoch 367/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7263e-10 - accuracy: 1.0000 - val_loss: 4.2321 - val_accuracy: 0.9264\n",
      "Epoch 368/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7263e-10 - accuracy: 1.0000 - val_loss: 4.2320 - val_accuracy: 0.9264\n",
      "Epoch 369/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.7263e-10 - accuracy: 1.0000 - val_loss: 4.2320 - val_accuracy: 0.9264\n",
      "Epoch 370/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0448e-10 - accuracy: 1.0000 - val_loss: 4.2321 - val_accuracy: 0.9264\n",
      "Epoch 371/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0448e-10 - accuracy: 1.0000 - val_loss: 4.2318 - val_accuracy: 0.9264\n",
      "Epoch 372/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0448e-10 - accuracy: 1.0000 - val_loss: 4.2316 - val_accuracy: 0.9264\n",
      "Epoch 373/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0448e-10 - accuracy: 1.0000 - val_loss: 4.2316 - val_accuracy: 0.9264\n",
      "Epoch 374/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 2.0448e-10 - accuracy: 1.0000 - val_loss: 4.2312 - val_accuracy: 0.9264\n",
      "Epoch 375/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3632e-10 - accuracy: 1.0000 - val_loss: 4.2310 - val_accuracy: 0.9264\n",
      "Epoch 376/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3632e-10 - accuracy: 1.0000 - val_loss: 4.2305 - val_accuracy: 0.9264\n",
      "Epoch 377/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3632e-10 - accuracy: 1.0000 - val_loss: 4.2306 - val_accuracy: 0.9264\n",
      "Epoch 378/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3632e-10 - accuracy: 1.0000 - val_loss: 4.2303 - val_accuracy: 0.9264\n",
      "Epoch 379/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3632e-10 - accuracy: 1.0000 - val_loss: 4.2302 - val_accuracy: 0.9264\n",
      "Epoch 380/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3632e-10 - accuracy: 1.0000 - val_loss: 4.2302 - val_accuracy: 0.9264\n",
      "Epoch 381/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 1.3632e-10 - accuracy: 1.0000 - val_loss: 4.2302 - val_accuracy: 0.9264\n",
      "Epoch 382/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2300 - val_accuracy: 0.9264\n",
      "Epoch 383/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2300 - val_accuracy: 0.9264\n",
      "Epoch 384/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2297 - val_accuracy: 0.9264\n",
      "Epoch 385/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2293 - val_accuracy: 0.9264\n",
      "Epoch 386/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2290 - val_accuracy: 0.9264\n",
      "Epoch 387/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2288 - val_accuracy: 0.9264\n",
      "Epoch 388/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2286 - val_accuracy: 0.9264\n",
      "Epoch 389/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2284 - val_accuracy: 0.9264\n",
      "Epoch 390/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2281 - val_accuracy: 0.9264\n",
      "Epoch 391/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2276 - val_accuracy: 0.9264\n",
      "Epoch 392/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2276 - val_accuracy: 0.9264\n",
      "Epoch 393/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2274 - val_accuracy: 0.9264\n",
      "Epoch 394/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2270 - val_accuracy: 0.9264\n",
      "Epoch 395/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2271 - val_accuracy: 0.9264\n",
      "Epoch 396/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2270 - val_accuracy: 0.9264\n",
      "Epoch 397/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2266 - val_accuracy: 0.9264\n",
      "Epoch 398/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2263 - val_accuracy: 0.9264\n",
      "Epoch 399/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2260 - val_accuracy: 0.9264\n",
      "Epoch 400/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2253 - val_accuracy: 0.9264\n",
      "Epoch 401/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2249 - val_accuracy: 0.9264\n",
      "Epoch 402/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2248 - val_accuracy: 0.9264\n",
      "Epoch 403/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2243 - val_accuracy: 0.9264\n",
      "Epoch 404/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2243 - val_accuracy: 0.9264\n",
      "Epoch 405/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2239 - val_accuracy: 0.9264\n",
      "Epoch 406/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2237 - val_accuracy: 0.9264\n",
      "Epoch 407/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2233 - val_accuracy: 0.9264\n",
      "Epoch 408/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2230 - val_accuracy: 0.9264\n",
      "Epoch 409/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2228 - val_accuracy: 0.9264\n",
      "Epoch 410/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2226 - val_accuracy: 0.9264\n",
      "Epoch 411/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 6.8159e-11 - accuracy: 1.0000 - val_loss: 4.2222 - val_accuracy: 0.9264\n",
      "Epoch 412/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2217 - val_accuracy: 0.9264\n",
      "Epoch 413/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2218 - val_accuracy: 0.9264\n",
      "Epoch 414/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2213 - val_accuracy: 0.9264\n",
      "Epoch 415/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2214 - val_accuracy: 0.9264\n",
      "Epoch 416/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2209 - val_accuracy: 0.9264\n",
      "Epoch 417/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2206 - val_accuracy: 0.9264\n",
      "Epoch 418/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2204 - val_accuracy: 0.9264\n",
      "Epoch 419/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2201 - val_accuracy: 0.9264\n",
      "Epoch 420/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2201 - val_accuracy: 0.9264\n",
      "Epoch 421/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2197 - val_accuracy: 0.9264\n",
      "Epoch 422/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2193 - val_accuracy: 0.9264\n",
      "Epoch 423/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2188 - val_accuracy: 0.9264\n",
      "Epoch 424/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2187 - val_accuracy: 0.9264\n",
      "Epoch 425/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2182 - val_accuracy: 0.9264\n",
      "Epoch 426/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2183 - val_accuracy: 0.9264\n",
      "Epoch 427/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2176 - val_accuracy: 0.9264\n",
      "Epoch 428/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2174 - val_accuracy: 0.9264\n",
      "Epoch 429/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2174 - val_accuracy: 0.9264\n",
      "Epoch 430/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2166 - val_accuracy: 0.9264\n",
      "Epoch 431/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2164 - val_accuracy: 0.9264\n",
      "Epoch 432/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2162 - val_accuracy: 0.9264\n",
      "Epoch 433/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2159 - val_accuracy: 0.9264\n",
      "Epoch 434/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2157 - val_accuracy: 0.9264\n",
      "Epoch 435/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2157 - val_accuracy: 0.9264\n",
      "Epoch 436/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2154 - val_accuracy: 0.9264\n",
      "Epoch 437/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2152 - val_accuracy: 0.9264\n",
      "Epoch 438/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2147 - val_accuracy: 0.9264\n",
      "Epoch 439/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2144 - val_accuracy: 0.9264\n",
      "Epoch 440/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2141 - val_accuracy: 0.9264\n",
      "Epoch 441/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2139 - val_accuracy: 0.9264\n",
      "Epoch 442/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2135 - val_accuracy: 0.9264\n",
      "Epoch 443/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2133 - val_accuracy: 0.9264\n",
      "Epoch 444/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2131 - val_accuracy: 0.9264\n",
      "Epoch 445/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2125 - val_accuracy: 0.9264\n",
      "Epoch 446/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2124 - val_accuracy: 0.9264\n",
      "Epoch 447/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2120 - val_accuracy: 0.9264\n",
      "Epoch 448/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2118 - val_accuracy: 0.9264\n",
      "Epoch 449/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2113 - val_accuracy: 0.9264\n",
      "Epoch 450/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2111 - val_accuracy: 0.9264\n",
      "Epoch 451/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2102 - val_accuracy: 0.9264\n",
      "Epoch 452/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2104 - val_accuracy: 0.9264\n",
      "Epoch 453/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2099 - val_accuracy: 0.9264\n",
      "Epoch 454/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2097 - val_accuracy: 0.9264\n",
      "Epoch 455/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2091 - val_accuracy: 0.9264\n",
      "Epoch 456/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2090 - val_accuracy: 0.9264\n",
      "Epoch 457/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2089 - val_accuracy: 0.9264\n",
      "Epoch 458/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2084 - val_accuracy: 0.9264\n",
      "Epoch 459/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2081 - val_accuracy: 0.9264\n",
      "Epoch 460/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2076 - val_accuracy: 0.9264\n",
      "Epoch 461/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2074 - val_accuracy: 0.9264\n",
      "Epoch 462/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2072 - val_accuracy: 0.9264\n",
      "Epoch 463/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2066 - val_accuracy: 0.9264\n",
      "Epoch 464/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2063 - val_accuracy: 0.9264\n",
      "Epoch 465/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2058 - val_accuracy: 0.9264\n",
      "Epoch 466/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2057 - val_accuracy: 0.9264\n",
      "Epoch 467/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2050 - val_accuracy: 0.9264\n",
      "Epoch 468/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2049 - val_accuracy: 0.9264\n",
      "Epoch 469/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2047 - val_accuracy: 0.9264\n",
      "Epoch 470/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2041 - val_accuracy: 0.9264\n",
      "Epoch 471/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2038 - val_accuracy: 0.9264\n",
      "Epoch 472/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2036 - val_accuracy: 0.9264\n",
      "Epoch 473/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2031 - val_accuracy: 0.9264\n",
      "Epoch 474/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2022 - val_accuracy: 0.9264\n",
      "Epoch 475/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2018 - val_accuracy: 0.9264\n",
      "Epoch 476/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2017 - val_accuracy: 0.9264\n",
      "Epoch 477/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2014 - val_accuracy: 0.9264\n",
      "Epoch 478/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2008 - val_accuracy: 0.9264\n",
      "Epoch 479/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2007 - val_accuracy: 0.9264\n",
      "Epoch 480/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2005 - val_accuracy: 0.9264\n",
      "Epoch 481/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.2000 - val_accuracy: 0.9264\n",
      "Epoch 482/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1996 - val_accuracy: 0.9264\n",
      "Epoch 483/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1992 - val_accuracy: 0.9264\n",
      "Epoch 484/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1991 - val_accuracy: 0.9264\n",
      "Epoch 485/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1982 - val_accuracy: 0.9264\n",
      "Epoch 486/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1978 - val_accuracy: 0.9264\n",
      "Epoch 487/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1980 - val_accuracy: 0.9264\n",
      "Epoch 488/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1974 - val_accuracy: 0.9264\n",
      "Epoch 489/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1968 - val_accuracy: 0.9264\n",
      "Epoch 490/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1964 - val_accuracy: 0.9264\n",
      "Epoch 491/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1964 - val_accuracy: 0.9264\n",
      "Epoch 492/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1961 - val_accuracy: 0.9264\n",
      "Epoch 493/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1956 - val_accuracy: 0.9264\n",
      "Epoch 494/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1949 - val_accuracy: 0.9264\n",
      "Epoch 495/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1949 - val_accuracy: 0.9264\n",
      "Epoch 496/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1942 - val_accuracy: 0.9264\n",
      "Epoch 497/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1940 - val_accuracy: 0.9264\n",
      "Epoch 498/500\n",
      "50/50 [==============================] - 0s 5ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1941 - val_accuracy: 0.9264\n",
      "Epoch 499/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1932 - val_accuracy: 0.9264\n",
      "Epoch 500/500\n",
      "50/50 [==============================] - 0s 6ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 4.1923 - val_accuracy: 0.9264\n"
     ]
    }
   ],
   "source": [
    "# 创建模型  \n",
    "model = Sequential()  \n",
    "  \n",
    "# 添加一维卷积层，卷积核大小为3，数量为64，输入形状为（128,3），激活函数为relu  \n",
    "model.add(Conv1D(64, 3, activation=\"relu\", input_shape=(128, 3)))  \n",
    "  \n",
    "# 添加一维卷积层，卷积核大小为3，数量为64，激活函数为relu  \n",
    "model.add(Conv1D(64, 3, activation=\"relu\"))  \n",
    "  \n",
    "# 使用Conv1D代替MaxPooling1D  \n",
    "model.add(Conv1D(64, 2, activation=\"relu\", padding='same'))  # 池化窗口大小为2，与MaxPooling1D等效\n",
    "  \n",
    "# 展平层，用于将输入展平，以便可以进入全连接层  \n",
    "model.add(Flatten())  \n",
    "\n",
    "# # 添加一维卷积层，卷积核大小为3，数量为64，激活函数为relu  \n",
    "# model.add(Conv1D(64, 3, activation=\"relu\"))  \n",
    "  \n",
    "# # 添加一维卷积层，卷积核大小为3，数量为64，激活函数为relu  \n",
    "# model.add(Conv1D(64, 3, activation=\"relu\"))  \n",
    "  \n",
    "# 添加全连接层，节点数为128，激活函数为relu  \n",
    "model.add(Dense(128, activation='relu'))  \n",
    "  \n",
    "# 添加输出层，节点数为类别数，激活函数为softmax  \n",
    "model.add(Dense(36, activation='softmax'))  # 如果有其他数量的类别，请修改这里的节点数  \n",
    "  \n",
    "# 模型结构概述  \n",
    "model.summary()\n",
    "# 编译模型，优化器使用adam，损失函数使用交叉熵损失函数，评估标准为准确率  \n",
    "model.compile(optimizer=\"adam\", loss=\"categorical_crossentropy\", metrics=[\"accuracy\"])\n",
    "\n",
    "# 训练模型  \n",
    "history=model.fit(train_data, train_label, epochs=500, batch_size=35, validation_data=(val_data, val_label))\n",
    "\n",
    "# 在测试集上评估模型  \n",
    "# loss, accuracy = model.evaluate(test_data, test_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "cd160c91-5239-47ec-83c0-2ffd3b993212",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWvUlEQVR4nO3deXhTVfoH8O9N2iTdF7rXSkGQRYEihVo3RKtsVmFc2LRYEUcFBaszP3GhgDPUBYFRGFBGYFS2AQGdYRMLiCiKAhUQRECgbN1Auq+55/dHmjRp09KUm942/X6eJ0+Tu+Xk4sx9n/e85xxJCCFARERE5CI0ajeAiIiISEkMboiIiMilMLghIiIil8LghoiIiFwKgxsiIiJyKQxuiIiIyKUwuCEiIiKXwuCGiIiIXAqDGyIiInIpDG6ISDGSJGHatGkOn3fq1ClIkoSlS5cq3iYiansY3BC5mKVLl0KSJEiShF27dtXZL4RAVFQUJEnCfffdp0ILiYici8ENkYsyGAxYvnx5ne1ff/01zp49C71er0KriIicj8ENkYsaMmQIVq9ejaqqKpvty5cvR58+fRAWFqZSy9qO4uJitZtA1CYxuCFyUaNGjcLFixexdetWy7aKigqsWbMGo0ePtntOcXExXnzxRURFRUGv16NLly6YNWsWhBA2x5WXl+OFF15AcHAwfHx8cP/99+Ps2bN2r3nu3Dk88cQTCA0NhV6vxw033IDFixc36TddunQJL730Enr06AFvb2/4+vpi8ODB+Pnnn+scW1ZWhmnTpuH666+HwWBAeHg4/vSnP+HEiROWY2RZxj/+8Q/06NEDBoMBwcHBGDRoEH766ScADdcC1a4vmjZtGiRJwuHDhzF69GgEBATgtttuAwAcOHAAjz/+ODp27AiDwYCwsDA88cQTuHjxot37NW7cOERERECv16NDhw545plnUFFRgd9//x2SJGHOnDl1zvvuu+8gSRJWrFjh6G0lcjluajeAiJwjOjoa8fHxWLFiBQYPHgwA2LRpE/Lz8zFy5Ei89957NscLIXD//fdj+/btGDduHGJiYrBlyxb85S9/wblz52weqE8++SQ+/fRTjB49Grfccgu2bduGoUOH1mlDdnY2br75ZkiShIkTJyI4OBibNm3CuHHjUFBQgMmTJzv0m37//XesX78eDz/8MDp06IDs7Gx88MEH6N+/Pw4fPoyIiAgAgNFoxH333Yf09HSMHDkSkyZNQmFhIbZu3YpDhw7huuuuAwCMGzcOS5cuxeDBg/Hkk0+iqqoK33zzDb7//nvExsY61Dazhx9+GJ07d8bMmTMtQeHWrVvx+++/Izk5GWFhYfjll1/w4Ycf4pdffsH3338PSZIAAOfPn0e/fv1w+fJlPPXUU+jatSvOnTuHNWvWoKSkBB07dsStt96KZcuW4YUXXrD53mXLlsHHxwcPPPBAk9pN5FIEEbmUJUuWCADixx9/FPPmzRM+Pj6ipKRECCHEww8/LAYMGCCEEKJ9+/Zi6NChlvPWr18vAIi//e1vNtd76KGHhCRJ4vjx40IIITIyMgQA8eyzz9ocN3r0aAFApKamWraNGzdOhIeHi7y8PJtjR44cKfz8/CztOnnypAAglixZ0uBvKysrE0aj0WbbyZMnhV6vFzNmzLBsW7x4sQAgZs+eXecasiwLIYTYtm2bACCef/75eo9pqF21f2tqaqoAIEaNGlXnWPPvtLZixQoBQOzcudOyLSkpSWg0GvHjjz/W26YPPvhAABBHjhyx7KuoqBBBQUFi7Nixdc4jaovYLUXkwh555BGUlpbif//7HwoLC/G///2v3i6pjRs3QqvV4vnnn7fZ/uKLL0IIgU2bNlmOA1DnuNpZGCEEPvvsMyQmJkIIgby8PMtr4MCByM/Px759+xz6PXq9HhqN6f+2jEYjLl68CG9vb3Tp0sXmWp999hmCgoLw3HPP1bmGOUvy2WefQZIkpKam1ntMUzz99NN1tnl4eFjel5WVIS8vDzfffDMAWNotyzLWr1+PxMREu1kjc5seeeQRGAwGLFu2zLJvy5YtyMvLw6OPPtrkdhO5EgY3RC4sODgYCQkJWL58OdauXQuj0YiHHnrI7rGnT59GREQEfHx8bLZ369bNst/8V6PRWLp2zLp06WLzOTc3F5cvX8aHH36I4OBgm1dycjIAICcnx6HfI8sy5syZg86dO0Ov1yMoKAjBwcE4cOAA8vPzLcedOHECXbp0gZtb/T3vJ06cQEREBAIDAx1qw5V06NChzrZLly5h0qRJCA0NhYeHB4KDgy3Hmdudm5uLgoIC3HjjjQ1e39/fH4mJiTYj4ZYtW4bIyEjcddddCv4SotaLNTdELm706NEYP348srKyMHjwYPj7+zfL98qyDAB49NFHMXbsWLvH9OzZ06Frzpw5E6+//jqeeOIJvPHGGwgMDIRGo8HkyZMt36ek+jI4RqOx3nOsszRmjzzyCL777jv85S9/QUxMDLy9vSHLMgYNGtSkdiclJWH16tX47rvv0KNHD3zxxRd49tlnLVktoraOwQ2Rixs+fDj+/Oc/4/vvv8eqVavqPa59+/b46quvUFhYaJO9+fXXXy37zX9lWbZkR8yOHj1qcz3zSCqj0YiEhARFfsuaNWswYMAAfPTRRzbbL1++jKCgIMvn6667Dj/88AMqKyvh7u5u91rXXXcdtmzZgkuXLtWbvQkICLBc35o5i9UYf/zxB9LT0zF9+nRMnTrVsv3YsWM2xwUHB8PX1xeHDh264jUHDRqE4OBgLFu2DHFxcSgpKcFjjz3W6DYRuTqG+UQuztvbGwsWLMC0adOQmJhY73FDhgyB0WjEvHnzbLbPmTMHkiRZRlyZ/9YebTV37lybz1qtFg8++CA+++wzuw/s3Nxch3+LVqutMyx99erVOHfunM22Bx98EHl5eXV+CwDL+Q8++CCEEJg+fXq9x/j6+iIoKAg7d+602f/Pf/7ToTZbX9Os9v3SaDQYNmwY/vvf/1qGottrEwC4ublh1KhR+M9//oOlS5eiR48eDmfBiFwZMzdEbUB93ULWEhMTMWDAALz66qs4deoUevXqhS+//BKff/45Jk+ebKmxiYmJwahRo/DPf/4T+fn5uOWWW5Ceno7jx4/Xueabb76J7du3Iy4uDuPHj0f37t1x6dIl7Nu3D1999RUuXbrk0O+47777MGPGDCQnJ+OWW27BwYMHsWzZMnTs2NHmuKSkJHz88cdISUnBnj17cPvtt6O4uBhfffUVnn32WTzwwAMYMGAAHnvsMbz33ns4duyYpYvom2++wYABAzBx4kQApmHvb775Jp588knExsZi586d+O233xrdZl9fX9xxxx14++23UVlZicjISHz55Zc4efJknWNnzpyJL7/8Ev3798dTTz2Fbt264cKFC1i9ejV27dpl06WYlJSE9957D9u3b8dbb73l0H0kcnmqjdMiIqewHgrekNpDwYUQorCwULzwwgsiIiJCuLu7i86dO4t33nnHMgzZrLS0VDz//POiXbt2wsvLSyQmJoozZ87UGR4thBDZ2dliwoQJIioqSri7u4uwsDBx9913iw8//NByjCNDwV988UURHh4uPDw8xK233ip2794t+vfvL/r3729zbElJiXj11VdFhw4dLN/70EMPiRMnTliOqaqqEu+8847o2rWr0Ol0Ijg4WAwePFjs3bvX5jrjxo0Tfn5+wsfHRzzyyCMiJyen3qHgubm5ddp99uxZMXz4cOHv7y/8/PzEww8/LM6fP2/3fp0+fVokJSWJ4OBgodfrRceOHcWECRNEeXl5nevecMMNQqPRiLNnzzZ434jaGkmIWrlSIiJqFXr37o3AwECkp6er3RSiFoU1N0RErdBPP/2EjIwMJCUlqd0UohaHmRsiolbk0KFD2Lt3L959913k5eXh999/h8FgULtZRC0KMzdERK3ImjVrkJycjMrKSqxYsYKBDZEdzNwQERGRS2HmhoiIiFwKgxsiIiJyKW1uEj9ZlnH+/Hn4+Phc1cq/RERE1HyEECgsLERERMQV11Frc8HN+fPnERUVpXYziIiIqAnOnDmDa665psFj2lxwY14Q8MyZM/D19VW5NURERNQYBQUFiIqKslnYtz5tLrgxd0X5+voyuCEiImplGlNSwoJiIiIicikMboiIiMilMLghIiIil9Lmam4ay2g0orKyUu1mtFru7u7QarVqN4OIiNogBje1CCGQlZWFy5cvq92UVs/f3x9hYWGcT4iIiJoVg5tazIFNSEgIPD09+WBuAiEESkpKkJOTAwAIDw9XuUVERNSWMLixYjQaLYFNu3bt1G5Oq+bh4QEAyMnJQUhICLuoiIio2bCg2Iq5xsbT01PllrgG831k7RIRETUnBjd2sCtKGbyPRESkBgY3RERE5FJUDW527tyJxMREREREQJIkrF+//orn7NixAzfddBP0ej06deqEpUuXOr2dbVV0dDTmzp2rdjOIiIgcompwU1xcjF69emH+/PmNOv7kyZMYOnQoBgwYgIyMDEyePBlPPvkktmzZ4uSWtmySJDX4mjZtWpOu++OPP+Kpp55StrFEREROpupoqcGDB2Pw4MGNPn7hwoXo0KED3n33XQBAt27dsGvXLsyZMwcDBw50VjNbvAsXLljer1q1ClOnTsXRo0ct27y9vS3vhRAwGo1wc7vyP31wcLCyDbVSUlGFS8UVTrs+ERGpR+emQYiPQbXvb1VDwXfv3o2EhASbbQMHDsTkyZPrPae8vBzl5eWWzwUFBc5qnmrCwsIs7/38/CBJkmXbjh07MGDAAGzcuBGvvfYaDh48iC+//BJRUVFISUnB999/j+LiYnTr1g1paWlISEiAEALlVTK6dLoOz0x8Di//5UUApgzRokWLsGHDBmzZsgWRkZF49913cf/99zeqnUcuFOBYThFyCsrw7pe/obTSqPzNICIi1d10rT/WPnurat/fqoKbrKwshIaG2mwLDQ1FQUEBSktLLXOrWEtLS8P06dOb/J1CCNUewh7u2jojjkoqqlBpFPDzcEelUYZGkqDVXHlU0ssvv4xZs2ahY8eOCAgIwJkzZzBkyBD8/e9/h16vx8cff4zExEQcPXoUOv8Q5BSUoUqWcam4AoVllfAxuAMApk+fjrfffhvvvPMO3n//fYwZMwanT59GYGCg3e8tqajCYx/9gP7dIvD+tuMor5It+3RaDTigiojI9bhr1R2v1KqCm6aYMmUKUlJSLJ8LCgoQFRXV6PNLK43oPlWdmp7DMwbCU1fzT1RaYcTvucWQhUCEvwey8svgqdOiY7B3A1cxmTFjBu655x7L58DAQPTq1cvy+Y033sC6devw+eef4+4Hx9qce+aPUkT4CQDA448/jlGjRgEAZs6ciffeew979uzBoEGDLMfLQiC3sByXC4txqbgS5y+XYtaXv1n23xDhi2ExkRh3WwdoGhGYEREROaJVBTdhYWHIzs622ZadnQ1fX1+7WRsA0Ov10Ov1zdE8pzt/uRSyEJb3AFBUXgVZFlcMEmJjY20+FxUVYdq0adiwYQMuXLiAqqoqlJaWIuPX4+gvy3DXauCmMUXeVUYZmZdKAAA9e/ZElSzjYlEFvPR6+Pr6IicnB0IInLtcCiFMfa3ZBWUQVbYZr9s7B2FRUiwM7pytmIiInKdVBTfx8fHYuHGjzbatW7ciPj7ead/p4a7F4RlNL1aWhcDh86Y6nwg/DwR66xz6buvrlNTTPVZWZbTJ8Njj5eVl8/mll17C1q1bMWvWLHTq1AklRi3GjhmB8nJTkW+glw6SBGhq9RtJWi2y88txsbi6jkmSUFhagVMXS1BYZjsTsU6rhYe7BqmJ3ZFdLOOhPlEMbIiIyOlUDW6Kiopw/Phxy+eTJ08iIyMDgYGBuPbaazFlyhScO3cOH3/8MQDg6aefxrx58/DXv/4VTzzxBLZt24b//Oc/2LBhg9PaKEnSFQOHhpRVGi0PdDetxnItc9Gu3k3TqJl8yyqNEEJAq5EQ3c4Lp/KKYazO4pRV1gQ3lUYZAoBRlqHV1N/n+e233+Lxxx/H8OHDUVBaiaNnc3H+bCYM7lp0CvaGh87U5kAvd1wb6ImcwnLLd10urRnlJISw1OXUFhXoARTpEdshBAaDelXzRETUtqha8fPTTz+hd+/e6N27NwAgJSUFvXv3xtSpUwGYhjhnZmZaju/QoQM2bNiArVu3olevXnj33Xfxr3/9q0UPAy+zyrZYv88vrcRv2YXIyi9r1HVKK0znerhr4aV3Q5cwHwR66aqvW1Oke6m4AkIIHM0uQpWxZntJRRX+KKnA4fMFKCyrROfOnbF27Vr88ONebPnme/zl2XGQZQG9mwaeejdLwKVz08LfUwcvvSl4+qO4EkZZ1FvEHOHvAS+dG8J8DXBTuaCMiIjaJlUzN3feeSdEdfbBHnuzD995553Yv3+/E1ulLOvRQaWVRlQaZRzLLkKVbNqeW1SOIB99g5XlQggUlVcBADx1NVkgL50bLhVXWEZzVRplVFR/X5VRRoFVNuX33GL4Vpj+uU/mFeOF1/6Glyc9gzvvuB3+gYFIfmYSiosK4VZP0OJV/b1G2fTvFeRdU8cU6KVDsI8eVUaBdl46y76yssYFbkREREqSREPRhQsqKCiAn58f8vPz4evra7OvrKwMJ0+eRIcOHRTrRjl9sRj5pTVBRqivAdkFtg/9EB8Dwvzq/77sgjLLOR2DvOFtMAUpxeVVOJFbBJ1Wg67hvvijpAJnqgt/AcDX4I7oIC8czylCSUVVg+3USBIi/D0s2aDaqowyDl+omSOoa5gPdG5aCCHq7VZzxv0kIqK2qaHnd23sN3Ay68wNUJP5sHa5tKLeDJYsBC4WmWpcwv08LIENYJonBgAqjQJCCBSWmgIY7+oupIKySlwsKr9iYOOu1aB7uG+9gQ1gyhRFt/OCJEnw83CHzs2UyeHK30RE1NIwuHGyKqNt0FJWa8STRpJQUSWjpML+SKjCsipUyTLctBoE1Rpp5aaVIEGCgKk42dwNFeprsBQEn6seMu6lc0O38LqRbnSQF64P9WnUfDO+Hu7oFuaDqEDPKx5LRESkFgY3TiQLYamt0VdnOqwzOWF+Bvh5mGb+NWdnaiuo7tIK8HSvkyWRJAnuWtO23MJyyELA4KY1TewX5G1T9OtlcKtT19MpxBu+BvdGzXBs5qbV1BkeTkRE1JIwuHEic9ZGkiQY3M1dSKbgJszXgBAfg6X4Nr+0AkW1hlNbFxKbu5pqc3czXfdyielcv+ogSKuR4O9Zk+nxrs7kmBcyi27ndVVD3ImIiFoqBjdOZB6K7aaRLLP9mpmzJR46Lfw83CEAnMwrQXF5TX1MRZWMSqMMSZLgVU8gYq67ETAFUnq3mu8xj3AyfY/p/BBfPbqG+cK3OmNERETkahjcOFFldfGwu1YDN61tV471kOuoAE/4GtwhYF7CwHRecUXN8O/6amLca11XZxXc+Hq4w8/DHaG+BkswpZEkm2OIiIhcDZ9yTmSbubENQqxnD9ZoJFwT4AGNJKGs0mipy6moMgU5Brf6lyyoXUejs/qskSS0b+eFUF8OwyYioraDwY0TVRrNmRs7wU3tTI5WYwlUzLU6luBIW38Br6dV15OmutaGiIioLWNw40Q1wYmmzlIE9mYCNgcx5hFWNd1a9QcshlqLa3LeGSIiausY3DiRdXBSO6NiL8NiDniqqs+rtAqO6qNUMBMdHY25c+cqci0iIiI1Mbhxosrq2hl3rcamFgaA3bliarqlzOtDVQdHV+hqivD3AIAGl3AgIiJqKzjRiZMIIVBRHaTotBpoNKbi3sxLJfB0t18gbMncVC+nYO6eutLq2u28dPDWu9kMAyciImqr+DR0EqMsIFcP6TZPtOfn4Y6uYT7oEORl9xxzzU2lLGomAETdYuTaFi1ahI7to+qsT/XAAw/giSeewIkTJ/DAAw8gNDQU3t7e6Nu3L7766qur+n1EREQtFYObKxECqCh2+FVRWgipsgQ6uQyayhLLdndjKTRVJXbPcasqhVRZAmNZESrLCgEhTOtHXaGu5uGHH8bFixexfft2y7ZLly5h8+bNGDNmDIqKijBkyBCkp6dj//79GDRoEBITE5GZmensu0dERNTs2C11JZUlwMwIh0/zBNDDwXN8a50jjT0CN73PFc8LCAjA4MGDsXz5ctx9990AgDVr1iAoKAgDBgyARqNBr169LMe/8cYbWLduHb744gtMnDjRwVYSERG1bMzctHC1l22oz5gxY/DZZ5+hvLwcALBs2TKMHDkSGo0GRUVFeOmll9CtWzf4+/vD29sbR44cYeaGiIhcEjM3V+LuCbxy3uHTzueX4mJRBYJ9dAjz9WjUObIQOHKhELIQCPTUQVRoGz0pX2JiIoQQ2LBhA/r27YtvvvkGc+bMAQC89NJL2Lp1K2bNmoVOnTrBw8MDDz30ECoq7K9ETkRE1JoxuLkSSQJ09guAG2LUShDubtDqPQCdvlHnaAAYvIDi8irkGzWAJF+xmNjMYDDgT3/6E5YtW4bjx4+jS5cuuOmmmwAA3377LR5//HEMHz4cAFBUVIRTp045/JuIiIhaAwY3TmIeKeXoagheOjcUl1dZhoE7spzCmDFjcN999+GXX37Bo48+atneuXNnrF27FomJiZAkCa+//jrk6usTERG5GtbcOEn1JMN2J+triJfedg4crQPn33XXXQgMDMTRo0cxevRoy/bZs2cjICAAt9xyCxITEzFw4EBLVoeIiMjVMHPjJLLctMyNodYEf45kbjQaDc6fr1sfFB0djW3bttlsmzBhgs1ndlMREZGrYHDjJOZuKcnB6MZNY5rXxjwhn8us8v3dPODXDcDgNwH/9kD+WbVbRNQ2nEgH9i4FqjiAgJpRRAwwcplqX8/gxkma2i0lSRLctRIqqlwsuPnhAyA/E/jgDrVbQkREzubr+PxwSmJw4yRNLSgGTAtoVlQ5XlDcoghhepnfF2XZ7jf4A1pdszeLqM3ReQI3Pwtc01ftllBb0oRRxkpicOMkNcGN48GJ9SrgrTK4qSoHco8COn/T57J8wFidEh8yy/Q39glAY38BUSIioqvB4MaO2gtQNkVNt5Tj52qaM7gpzjX99QpW7polFwFhhCjKA4QBKM4zbfcIAPqNV+57iIiI7OBQcCvu7u4AgJKSkqu6jhDCEiA1JXNjfU5Tzm802Wgq7M0/CxirlLuupvo+VgKoLIX72W9N233ClfsOIiKiejBzY0Wr1cLf3x85OTkAAE9PzyuuyG2PURYQ1SMTKsrLUeVg9sVYWW45v6yszOHvd+CLgOrCZZSWAG7K1MCI8nKUlAjkXLoM/2NroD1WXTHvHarI9YmIiBrC4KaWsLAwALAEOE1hlAVy8ssgAdCVNm5dqdrn5xWUweCuxcnSi01uxxXJVUBBdbdUgbZuga8QAAQgOZjgK8sHinPhf3oTwo4tr9nuE3ZVzSUiImoM1YOb+fPn45133kFWVhZ69eqF999/H/369bN7bGVlJdLS0vDvf/8b586dQ5cuXfDWW29h0KBBirVHkiSEh4cjJCQElZWVTbrG+T9KMW39DzC4a7Hh+dubdI1rKozQu2ualDlqtNzfgE0vmt7fPw+49mbb/V++BhzfBoz+D+B/TeOv+937cP/2XWiNpbbbvUOurr1ERESNoGpws2rVKqSkpGDhwoWIi4vD3LlzMXDgQBw9ehQhIXUfhK+99ho+/fRTLFq0CF27dsWWLVswfPhwfPfdd+jdu7eibdNqtdBqmzaap0KqwLlCI9p5aWEwGJp0jSae5hhRAhSdMb2vuGj7pUIA+xaZ3h9ZDQyY0vjrlucBxlLg9heBG/4ELLzVtL3kkjLtJiIiaoCqBcWzZ8/G+PHjkZycjO7du2PhwoXw9PTE4sWL7R7/ySef4JVXXsGQIUPQsWNHPPPMMxgyZAjefffdZm55w0orjAAAD10LH+pcUVTzvvSPmveVpcChz2o+6zxtzzNWAce+Mr2MdrJbldUF2e6eQNiNQGSs6XOPh5VpNxERUQNUC24qKiqwd+9eJCQk1DRGo0FCQgJ2795t95zy8vI6mRAPDw/s2rWr3u8pLy9HQUGBzcvZzMGNZ4sPbqxGhW37G3DyG9P7nbOAz8bV7CupVfez79/AsgdNr5+W1L1uZXV3lHt1UPTYOmD8dqBjf+XaTkREVA/Vgpu8vDwYjUaEhtqOoAkNDUVWVpbdcwYOHIjZs2fj2LFjkGUZW7duxdq1a3HhwoV6vyctLQ1+fn6WV1RUlKK/w54Sc+bG3QnBjRDA5xOANeMAWb66a1UU17wv/QP4932m638zy/a4Qqt/j/yzwCmrYDLr57rXtQQ31cXUBl8gkquQExFR82hV89z84x//QOfOndG1a1fodDpMnDgRycnJ0Gjq/xlTpkxBfn6+5XXmzBmnt7O00ondUvlngP2fAofWAH+cvLprWXdLmW17A0CtImZzcJNzBJhzA/DL2pp9f5yuew3rbikiIqJmplpBcVBQELRaLbKzs222Z2dnW4Zj1xYcHIz169ejrKwMFy9eREREBF5++WV07Nix3u/R6/XQ6/WKtv1KarqlnHB7z/5U8/7icaDddU2/lnXmxuwbO/VLJ78GFtwK5P1Wd9+pb4BVj5naUVEMDH67buaGiIioGamWudHpdOjTpw/S09Mt22RZRnp6OuLj4xs812AwIDIyElVVVfjss8/wwAMPOLu5DrFkbpTulrqcCexIq/l88fjVXa+ygZmYNe7AM9/VfM4+VLM+VG1HvgB2zQH2fAic38fMDRERqUrVoeApKSkYO3YsYmNj0a9fP8ydOxfFxcVITk4GACQlJSEyMhJpaaYH+g8//IBz584hJiYG586dw7Rp0yDLMv7617+q+TPqKHHWaKm1f7bNnuQda/y5QgC158yxl7kx02gB30jH2geYFsxk5oaIiFSkas3NiBEjMGvWLEydOhUxMTHIyMjA5s2bLUXGmZmZNsXCZWVleO2119C9e3cMHz4ckZGR2LVrF/z9/VX6BfaZMzcGd4Vvb+Z3tp9rZ272LALevg7IOmi7PWMFMOt6YPc/bbfXrrmJfaLmfVUZYPCrvy3dEu1vzzrE4IaIiFSl+gzFEydOxMSJE+3u27Fjh83n/v374/Dhw83QqqtTZTSNYtI1cRJAu4QwdRXJlUD8RGD3vLrBzcaXTH+XPQK8eMT0PvcosP5p0/sDq4D4Z2uOt87cdLwTuG8OcGyrqWg5sKMp03PjQ8DZH01dYqhehyqit2lG4yP/rdvO7IPsliIiIlW1qtFSrYVRNgUBblqFlk44uhl4/yZTYAMAtzxn+lt4ASgvrHt84fma9zlHat5rqoMt2QgUZtcEN0NmAY+tN70f+1+g+wPAyBWmzw99BEz6GQiIrrlO53sBD38geRNw44O2333h55p5cZi5ISIiFaieuXFFVdXBjdbB1cDrtWJEzXt3L9MClF7BQHGuKXsTUb30hN+1QH6m6X3JJcAzECi1WvKgqtz093+TgX0fAzof02eDf009TmAH4JGPbb9fkgC9T81n8/v2t5hed/zVVAu06a+mgMvSVmZuiIio+TFz4wTmbik3pYIba57tTH/bdTL9zbPqmjL41rw/t9f013p2YXOmZl918FJRnfXReV35e/VW19Z52+4L6Qp0vx949DPb7czcEBGRChjcOIHimRtrXrWCm/0fA0W5pveVVqtwF+WY/pZYrRlVegn4bUvdazYquLGTuaktpLvtZwY3RESkAgY3TmCuuXHXKnB7rQMWAPAMMv0N6mz6e3In8EV1DU5VWc1x5oyNdeamLB9Y/kjd72hMcGNoIHNjJkmAl9Vq7poWvrYWERG5JAY3TqBY5kYI4MR2222egaa/5swNAPy2yfTXOhAyBzXWNTf1cThzU09wAwC+4Ve+FhERkRMxuHECy2ipqw1ujm4CVo6yvy/q5pr3HgGmv1fK3NgjaQD/9lduS2O6pQDAJ+LK1yIiInIiBjdOoFjm5tCautvMc8h4tQMmHTC9LyswrRBuvZxCySXbv/Z0GQJM/AnQNWJUU0MFxdZ87K8LRkRE1FwY3DiBUW5gtJQQwC/rgEu/X/lC5pFR1qwDC+/q+hZhrJuhuVK3VKcEYNSKxi+8af29DWVu+j1l+tvxzsZdl4iISGGc58YJKo3mzI2d2PHIf4HVj5veT8tv+ELWWZdeo03LKgx4pWabuwfg5gFUldpO3AeYgpttfzMVEdsz+O2Gv7s269/SUOYmtDuQ8qv9wIyIiKgZMLhxggZrbk7ubPyFzFmXYQuBmHpqbzwCgMJSoKBWcPPHSWDnO1bHWU3o92R64zM2ZpJVcHOlId4sKiYiIhWxW8oJGqy5EXLN+y2vNryyt7lryTxCyh5zMXHt4Eausv3c2ILgeln9ltqrixMREbUgDG6cwFJzo5WA794HPugP/HHKtNM6uNk9D1g8qP4LmSfg82gguDEHPuZlD+yt5D1sge1SCA11K9UnIsbxc4iIiFTA4MYJqozmbikN8OVrwIUMYNFdpmJi6+AGAEryTH8vHAAO1hodZe5GajBz42/6a87c6H0BvVWAE9IdiBltO6FeUzI3Eb2BMZ8BE350/FwiIqJmxJobJzDa65YquQjk/mp/FW8A+OB201+fMCD6NtMilxVFpm2OdEu5GQBPN6C8upDYPITbupuqKZkbAOic0LTziIiImhEzN05grrnRybWWTijOtT+pXmFWzfvcX01/f1ln+itpbDMxtZm7rMzBjbvBdqSSedkE2Vizzd4oLiIiIhfBzI0TmDM3nhV5tjtKL9ufd+bMnpr3xReBrEPAuj+bPhv8Gg5GzJmbvKOmv24eNduAmsyNMIKIiKgtYHDjBJVGU12NR3mu7Y7/PGb/BOvtl08D5/fVfC79o+7x1moP6a43c1Nr9BQREZGLYv+EE5gzN4ayHMdPvpxp6r4y01wh/uwyBOg5suazm4dtjY6l5qZWITMREZGLYnDjBObgxqMs7wpH2vHHaSD/bM3n0asaPl6jBWKfqPlcX+aG3VJERNRGMLhxAktBsSOZmxera2YKztbMiZP4D9MaUFcSYLWqt8bdNrixN1qKiIjIhTG4cQJz5kZfWt295BV85ZO8QwGt3jQPztmfTNv8rmncF3qH1rwvvVQrc1M90sq8kKU3V+0mIiLXxoJiJ6iqrm9xN3dLBV1vW0djXuzS7M5XTEsa6LyA0nKgvMC03S+qcV9ovRxCUU6tzE31hH1D3gGCuwA9Hnbw1xAREbUuDG6cwDKJn3kivYBo4PS3pve3TgZ6Pwp8Mhy45Tng2puB0BtN+9wMthfyjXT8y4uy7XdLeQQAd/zF8esRERG1MgxunKCyevkFbYVVcGPmFQwEdQZeOFT3RHer4EbvC+gdmEm480Dg2Bag92P2C4qJiIjaCAY3TmDJ3JTVE9zUx82j5r2jSyQ8tNiUHep4p2n4uKQx1e8Y/B27DhERUSvH4MYJqmQZEmRo7GZuguo/0U1f897dUP9x9ui9gesH1ny+8xXTSuGNLUomIiJyEQxunMAoC/igFJJ5BXB/q6HahgbWiXK3yty4e15dI/qzvoaIiNomDgV3gipZIECqXv3bzcO2K6rBbinrzI1H/ccRERFRvZi5UZgsC/SX9mOp7h3TBg9/08KXDy8FyvJtJ9yrzbrmpvbIKSIiImoU1TM38+fPR3R0NAwGA+Li4rBnz54Gj587dy66dOkCDw8PREVF4YUXXkBZWVkztfbKqmSBt90X1Wwwr9B9w3Cgz+MNn2xdZ3O13VJERERtlKrBzapVq5CSkoLU1FTs27cPvXr1wsCBA5GTY3/ZguXLl+Pll19Gamoqjhw5go8++girVq3CK6+80swtr59RFvhDWI10cmS0knW2ht1SRERETaJqcDN79myMHz8eycnJ6N69OxYuXAhPT08sXrzY7vHfffcdbr31VowePRrR0dG49957MWrUqCtme5pTpSwjU1gth+DIXDUMboiIiK6aasFNRUUF9u7di4SEmoUhNRoNEhISsHv3brvn3HLLLdi7d68lmPn999+xceNGDBkypN7vKS8vR0FBgc3LmYxGgVxhNXFe6eXGn2wzWorBDRERUVOoVlCcl5cHo9GI0NBQm+2hoaH49ddf7Z4zevRo5OXl4bbbboMQAlVVVXj66acb7JZKS0vD9OnTFW17Q6pkAXcYazYUZTf+ZJvRUqy5ISIiagrVC4odsWPHDsycORP//Oc/sW/fPqxduxYbNmzAG2+8Ue85U6ZMQX5+vuV15swZp7bRKAu4S1U1GyJvavzJHC1FRER01VTL3AQFBUGr1SI72zazkZ2djbCwMLvnvP7663jsscfw5JNPAgB69OiB4uJiPPXUU3j11Veh0dSN1fR6PfR6fZ3tzlIly3BHdXDj5gEMeqvxJ3OeGyIioqumWuZGp9OhT58+SE9Pt2yTZRnp6emIj4+3e05JSUmdAEar1QIAhBDOa6wDjLKAztwtNfgtwCe04ROsKTlDMRERURul6iR+KSkpGDt2LGJjY9GvXz/MnTsXxcXFSE5OBgAkJSUhMjISaWlpAIDExETMnj0bvXv3RlxcHI4fP47XX38diYmJliBHbVWygA6Vpg9anWMn24yWYrcUERFRU6ga3IwYMQK5ubmYOnUqsrKyEBMTg82bN1uKjDMzM20yNa+99hokScJrr72Gc+fOITg4GImJifj73/+u1k+oo8ooarqltO6OnezGSfyIiIiuliRaSn9OMykoKICfnx/y8/Ph6+t75RMc9Mv5fJQsTEBfzW/AI58A3e9v/MlH/gusetT0/pGPge4PKN4+IiKi1siR53erGi3VGhhlq8yNm4OFzG6suSEiIrpaDG4UVmVdUOxwt5RVMMSh4ERERE3C4EZhxqspKOZoKSIioqvG4EZhtgXFjo6W4jw3REREV4vBjcJsZih2uFvKOnPDbikiIqKmYHCjMJsZirWOFhRzbSkiIqKrxeBGYVVGAV1Tu6U0VtMOOXouERERAWBwozjTaKkmdkt5BNS81/so1ygiIqI2RNUZil2RzTw3Do+WMgCTDwGSxvHAiIiIiAAwuFFclbESbpJs+tCUriX/KGUbRERE1MawW0phoqqy5oMb62aIiIiaG4MbhclVFTUfWBRMRETU7BjcKK2qvOa9hnUzREREzY3BjcJkoylzY4QW0PD2EhERNTc+fRUmVXdLVUnM2hAREamBwY3SZFNBMYMbIiIidTC4UZhUHdwYJY6yJyIiUgODG4VpjKaCYiMzN0RERKpgcKM0ozlzw+CGiIhIDQxuFCaZgxsNu6WIiIjUwOBGYZJsHi3FCfyIiIjUwOBGYZrqgmKZBcVERESqYHCjMMk8iR9nJyYiIlIFgxuF1QwFZ3BDRESkBgY3CtNU19zIDG6IiIhUweBGYZJcBYDdUkRERGphcKOwmswNC4qJiIjUwOBGacIIAJA5zw0REZEqGNwozNwtJZi5ISIiUgWDG4VJsilzIzRalVtCRETUNrWI4Gb+/PmIjo6GwWBAXFwc9uzZU++xd955JyRJqvMaOnRoM7a4flJ1t5SQGNwQERGpQfXgZtWqVUhJSUFqair27duHXr16YeDAgcjJybF7/Nq1a3HhwgXL69ChQ9BqtXj44YebueX2mWcoZrcUERGROlQPbmbPno3x48cjOTkZ3bt3x8KFC+Hp6YnFixfbPT4wMBBhYWGW19atW+Hp6dlightmboiIiNSlanBTUVGBvXv3IiEhwbJNo9EgISEBu3fvbtQ1PvroI4wcORJeXl5295eXl6OgoMDm5UySMBUUc7QUERGROlQNbvLy8mA0GhEaGmqzPTQ0FFlZWVc8f8+ePTh06BCefPLJeo9JS0uDn5+f5RUVFXXV7W6IJXPD4IaIiEgVqndLXY2PPvoIPXr0QL9+/eo9ZsqUKcjPz7e8zpw549Q2aaqDG7BbioiISBWqpheCgoKg1WqRnZ1tsz07OxthYWENnltcXIyVK1dixowZDR6n1+uh1+uvuq2NZp7nhpkbIiIiVaiaudHpdOjTpw/S09Mt22RZRnp6OuLj4xs8d/Xq1SgvL8ejjz7q7GY6RCM4iR8REZGaVH8Cp6SkYOzYsYiNjUW/fv0wd+5cFBcXIzk5GQCQlJSEyMhIpKWl2Zz30UcfYdiwYWjXrp0aza6XRnASPyIiIjWpHtyMGDECubm5mDp1KrKyshATE4PNmzdbiowzMzOh0dgmmI4ePYpdu3bhyy+/VKPJDbLU3LBbioiISBUt4gk8ceJETJw40e6+HTt21NnWpUsXCCGc3Kqm4WgpIiIidbXq0VItkXnhTLDmhoiISBUMbhSmZc0NERGRqhjcKMw8Woo1N0REROpgcKMwCSwoJiIiUhODG4XVjJZitxQREZEaGNworGaeG3eVW0JERNQ2MbhRmIZDwYmIiFTF4EZh2uqCYonBDRERkSoY3CiMNTdERETqcji4iY6OxowZM5CZmemM9rR6Go6WIiIiUpXDwc3kyZOxdu1adOzYEffccw9WrlyJ8vJyZ7StVeLaUkREROpqUnCTkZGBPXv2oFu3bnjuuecQHh6OiRMnYt++fc5oY6tinqEYWgY3REREamhyzc1NN92E9957D+fPn0dqair+9a9/oW/fvoiJicHixYtb7MKWzmbulmJBMRERkTqa/ASurKzEunXrsGTJEmzduhU333wzxo0bh7Nnz+KVV17BV199heXLlyvZ1lZBa1l+gfPcEBERqcHh4Gbfvn1YsmQJVqxYAY1Gg6SkJMyZMwddu3a1HDN8+HD07dtX0Ya2FjUFxRwtRUREpAaHg5u+ffvinnvuwYIFCzBs2DC4u9fNUHTo0AEjR45UpIGtjVbIANgtRUREpBaHn8C///472rdv3+AxXl5eWLJkSZMb1ZppwYJiIiIiNTlcUJyTk4MffvihzvYffvgBP/30kyKNas1YUExERKQuh4ObCRMm4MyZM3W2nzt3DhMmTFCkUa2Zm3n5BS0LiomIiNTgcHBz+PBh3HTTTXW29+7dG4cPH1akUa0ZZygmIiJSl8PBjV6vR3Z2dp3tFy5cgJsbH+hasKCYiIhITQ4HN/feey+mTJmC/Px8y7bLly/jlVdewT333KNo41odWbYENywoJiIiUofDT+BZs2bhjjvuQPv27dG7d28AQEZGBkJDQ/HJJ58o3sBWxbz0AgANa26IiIhU4XBwExkZiQMHDmDZsmX4+eef4eHhgeTkZIwaNcrunDdtilxleStpOYkfERGRGprUd+Ll5YWnnnpK6ba0fsbKmvdcfoGIiEgVTS4MOXz4MDIzM1FRUWGz/f7777/qRrVaNpkb1twQERGpoUkzFA8fPhwHDx6EJEmW1b8lSQIAGI3Ghk53bbJVzQ1HSxEREanC4dFSkyZNQocOHZCTkwNPT0/88ssv2LlzJ2JjY7Fjxw4nNLEVqc7cVAkNtFqHby0REREpwOH0wu7du7Ft2zYEBQVBo9FAo9HgtttuQ1paGp5//nns37/fGe1sHaqDGyO0qE5kERERUTNzOL1gNBrh4+MDAAgKCsL58+cBAO3bt8fRo0eVbV1rY87cQAMNoxsiIiJVOBzc3Hjjjfj5558BAHFxcXj77bfx7bffYsaMGejYsaPDDZg/fz6io6NhMBgQFxeHPXv2NHj85cuXMWHCBISHh0Ov1+P666/Hxo0bHf5ep7AEN1oGN0RERCpxuFvqtddeQ3FxMQBgxowZuO+++3D77bejXbt2WLVqlUPXWrVqFVJSUrBw4ULExcVh7ty5GDhwII4ePYqQkJA6x1dUVOCee+5BSEgI1qxZg8jISJw+fRr+/v6O/gznsAluVG4LERFRGyUJ83Cnq3Dp0iUEBARYRkw1VlxcHPr27Yt58+YBAGRZRlRUFJ577jm8/PLLdY5fuHAh3nnnHfz6669NnjCwoKAAfn5+yM/Ph6+vb5OuUa+sg8DC25Aj/FE48RdcF+yt7PWJiIjaKEee3w51S1VWVsLNzQ2HDh2y2R4YGOhwYFNRUYG9e/ciISGhpjEaDRISErB7926753zxxReIj4/HhAkTEBoaihtvvBEzZ85scPh5eXk5CgoKbF5Ow5obIiIi1TkU3Li7u+Paa69VZC6bvLw8GI1GhIaG2mwPDQ1FVlaW3XN+//13rFmzBkajERs3bsTrr7+Od999F3/729/q/Z60tDT4+flZXlFRUVfd9npVz3NjFOyWIiIiUovDBcWvvvoqXnnlFVy6dMkZ7WmQLMsICQnBhx9+iD59+mDEiBF49dVXsXDhwnrPMa9gbn6dOXPGeQ2sXn6BmRsiIiL1OFxQPG/ePBw/fhwRERFo3749vLy8bPbv27evUdcJCgqCVqtFdna2zfbs7GyEhYXZPSc8PBzu7u7QWi1K2a1bN2RlZaGiogI6na7OOXq9Hnq9vlFtumpW89y4M7YhIiJShcPBzbBhwxT5Yp1Ohz59+iA9Pd1yTVmWkZ6ejokTJ9o959Zbb8Xy5cshyzI0GlPS6bfffkN4eLjdwKbZVQc3ldDCi/1SREREqnA4uElNTVXsy1NSUjB27FjExsaiX79+mDt3LoqLi5GcnAwASEpKQmRkJNLS0gAAzzzzDObNm4dJkybhueeew7FjxzBz5kw8//zzirXpqphrbjjPDRERkWpUXd1xxIgRyM3NxdSpU5GVlYWYmBhs3rzZUmScmZlpydAAQFRUFLZs2YIXXngBPXv2RGRkJCZNmoT/+7//U+sn2LIaLcXYhoiISB0Oz3Oj0WgaHPbd0lcFd+Y8N+LIfyGtehT75E649q/fIci7mWp9iIiIXJwjz2+HMzfr1q2z+VxZWYn9+/fj3//+N6ZPn+7o5VyKkI2QYJqhWMvUDRERkSocDm4eeOCBOtseeugh3HDDDVi1ahXGjRunSMNaI1mWoQEgILHmhoiISCUOz3NTn5tvvhnp6elKXa5VEtUFxQISJMXuLBERETlCkUdwaWkp3nvvPURGRipxuVbLXL4kC2ZuiIiI1OJwt1TtBTKFECgsLISnpyc+/fRTRRvX2gghAwBkSFx+gYiISCUOBzdz5syxCW40Gg2Cg4MRFxeHgIAARRvX2sjVI8VkLr9ARESkGoeDm8cff9wJzXAN5m4pFhQTERGpx+GamyVLlmD16tV1tq9evRr//ve/FWlUqyWbMzfsliIiIlKLw8FNWloagoKC6mwPCQnBzJkzFWlUayVX19wwc0NERKQeh4ObzMxMdOjQoc729u3bIzMzU5FGtVaW0VKQuPwCERGRShwObkJCQnDgwIE623/++We0a9dOkUa1VsJonuem4SUqiIiIyHkcDm5GjRqF559/Htu3b4fRaITRaMS2bdswadIkjBw50hltbDUsBcUMbIiIiFTj8GipN954A6dOncLdd98NNzfT6bIsIykpqc3X3NTMUMzpiYmIiNTicHCj0+mwatUq/O1vf0NGRgY8PDzQo0cPtG/f3hnta1WEVUExERERqcPh4Masc+fO6Ny5s5Jtaf0swQ0zN0RERGpx+Cn84IMP4q233qqz/e2338bDDz+sSKNaK1k2BTccKkVERKQeh4ObnTt3YsiQIXW2Dx48GDt37lSkUa2VpVuKwQ0REZFqHA5uioqKoNPp6mx3d3dHQUGBIo1qtWR2SxEREanN4adwjx49sGrVqjrbV65cie7duyvSqNaKBcVERETqc7ig+PXXX8ef/vQnnDhxAnfddRcAID09HcuXL8eaNWsUb2BrIsyZG4mZGyIiIrU4HNwkJiZi/fr1mDlzJtasWQMPDw/06tUL27ZtQ2BgoDPa2GoIjpYiIiJSXZOGgg8dOhRDhw4FABQUFGDFihV46aWXsHfvXhirlyBoi8zBDXuliIiI1NPkFMPOnTsxduxYRERE4N1338Vdd92F77//Xsm2tT5y9fILzNwQERGpxqHMTVZWFpYuXYqPPvoIBQUFeOSRR1BeXo7169e3+WJiABCievkF1twQERGpptFP4cTERHTp0gUHDhzA3Llzcf78ebz//vvObFurw9FSRERE6mt05mbTpk14/vnn8cwzz3DZhfpYam6YuSEiIlJLo5/Cu3btQmFhIfr06YO4uDjMmzcPeXl5zmxb68Oh4ERERKpr9FP45ptvxqJFi3DhwgX8+c9/xsqVKxEREQFZlrF161YUFhY6s52tghBC7SYQERG1eQ6nGLy8vPDEE09g165dOHjwIF588UW8+eabCAkJwf333++MNrYaNWtLMXNDRESklqt6Cnfp0gVvv/02zp49ixUrVijVptbLXHPDoeBERESqUeQprNVqMWzYMHzxxRdNOn/+/PmIjo6GwWBAXFwc9uzZU++xS5cuhSRJNi+DwdDUpiuqZvkFjpYiIiJSi+ophlWr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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.history['accuracy'])\n",
    "plt.plot(history.history['val_accuracy'])\n",
    "plt.title('Model accuracy')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'val'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c5d90bd6-aa70-476d-b366-a5a2519cda5d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEkklEQVR4nO3deXxU1f3/8fdkGxKykYRsEjZBUBBU1mjrBpWtCIi1LFZcvvpTwW9xa6Uqotbi0iq1ItZWofYLoigggoAQFjd2CQhiFARZQsKaFbKQOb8/xkwyJIEwM8nNhNfz8biPzF3mzmcu8ZG355x7rs0YYwQAAOCHAqwuAAAAwFMEGQAA4LcIMgAAwG8RZAAAgN8iyAAAAL9FkAEAAH6LIAMAAPwWQQYAAPgtggwAAPBbBBkADYrNZtOkSZPO+X179uyRzWbTjBkzznjcqlWrZLPZtGrVKo/qA9CwEGQAVDFjxgzZbDbZbDZ98cUXVfYbY5SSkiKbzaZf//rXFlQIAE4EGQA1atKkiWbNmlVl++rVq7V//37Z7XYLqgKACgQZADUaOHCg5syZo1OnTrltnzVrlrp166bExESLKgMAJ4IMgBqNHDlSR48e1bJly1zbSkpK9MEHH2jUqFHVvqewsFAPP/ywUlJSZLfb1aFDB/31r3+VMcbtuOLiYj344INq3ry5IiIidOONN2r//v3VnvPAgQO68847lZCQILvdrk6dOuntt9/23ReVNGfOHHXr1k2hoaGKi4vTrbfeqgMHDrgdk5WVpTvuuEMtWrSQ3W5XUlKShgwZoj179riO2bhxo/r166e4uDiFhoaqTZs2uvPOO31aK4AKQVYXAKDhat26tVJTU/Xuu+9qwIABkqTFixcrNzdXI0aM0Kuvvup2vDFGN954o1auXKm77rpLl112mZYuXapHH31UBw4c0CuvvOI69n/+53/0f//3fxo1apSuvPJKrVixQoMGDapSQ3Z2tnr37i2bzaZx48apefPmWrx4se666y7l5eVp/PjxXn/PGTNm6I477lCPHj00efJkZWdn6+9//7u+/PJLbd68WdHR0ZKk4cOHa/v27XrggQfUunVrHTp0SMuWLdPevXtd6zfccIOaN2+uxx57TNHR0dqzZ4/mzp3rdY0AamAA4DTTp083ksyGDRvMa6+9ZiIiIsyJEyeMMcb85je/Mdddd50xxphWrVqZQYMGud43f/58I8n8+c9/djvfzTffbGw2m9m5c6cxxpj09HQjydx///1ux40aNcpIMk899ZRr21133WWSkpLMkSNH3I4dMWKEiYqKctW1e/duI8lMnz79jN9t5cqVRpJZuXKlMcaYkpISEx8fbzp37mxOnjzpOm7hwoVGkpk4caIxxpjjx48bSeall16q8dzz5s1zXTcA9YOuJQBndMstt+jkyZNauHCh8vPztXDhwhq7lT755BMFBgbqf//3f922P/zwwzLGaPHixa7jJFU57vTWFWOMPvzwQw0ePFjGGB05csS19OvXT7m5ufr666+9+n4bN27UoUOHdP/996tJkyau7YMGDVLHjh21aNEiSVJoaKhCQkK0atUqHT9+vNpzlbfcLFy4UKWlpV7VBaB2CDIAzqh58+bq27evZs2apblz56qsrEw333xztcf+9NNPSk5OVkREhNv2iy++2LW//GdAQIAuvPBCt+M6dOjgtn748GHl5OTozTffVPPmzd2WO+64Q5J06NAhr75feU2nf7YkdezY0bXfbrfrhRde0OLFi5WQkKCrr75aL774orKyslzHX3PNNRo+fLiefvppxcXFaciQIZo+fbqKi4u9qhFAzRgjA+CsRo0apbvvvltZWVkaMGCAq+WhrjkcDknSrbfeqjFjxlR7TJcuXeqlFsnZYjR48GDNnz9fS5cu1ZNPPqnJkydrxYoVuvzyy2Wz2fTBBx9o7dq1+vjjj7V06VLdeeed+tvf/qa1a9cqPDy83moFzhe0yAA4q2HDhikgIEBr166tsVtJklq1aqXMzEzl5+e7bf/uu+9c+8t/OhwO7dq1y+24jIwMt/XyO5rKysrUt2/fapf4+Hivvlt5Tad/dvm28v3lLrzwQj388MP69NNPtW3bNpWUlOhvf/ub2zG9e/fWc889p40bN2rmzJnavn27Zs+e7VWdAKpHkAFwVuHh4Zo2bZomTZqkwYMH13jcwIEDVVZWptdee81t+yuvvCKbzea686n85+l3PU2ZMsVtPTAwUMOHD9eHH36obdu2Vfm8w4cPe/J13HTv3l3x8fF644033LqAFi9erB07drjupDpx4oSKiorc3nvhhRcqIiLC9b7jx49Xuc38sssukyS6l4A6QtcSgFqpqWunssGDB+u6667T448/rj179qhr16769NNP9dFHH2n8+PGuMTGXXXaZRo4cqddff125ubm68sorlZaWpp07d1Y55/PPP6+VK1eqV69euvvuu3XJJZfo2LFj+vrrr7V8+XIdO3bMq+8VHBysF154QXfccYeuueYajRw50nX7devWrfXggw9Kkr7//nv16dNHt9xyiy655BIFBQVp3rx5ys7O1ogRIyRJ//nPf/T6669r2LBhuvDCC5Wfn69//etfioyM1MCBA72qE0D1CDIAfCYgIEALFizQxIkT9d5772n69Olq3bq1XnrpJT388MNux7799ttq3ry5Zs6cqfnz5+v666/XokWLlJKS4nZcQkKC1q9fr2eeeUZz587V66+/rtjYWHXq1EkvvPCCT+q+/fbbFRYWpueff15//OMf1bRpUw0bNkwvvPCCazxQSkqKRo4cqbS0NP33v/9VUFCQOnbsqPfff1/Dhw+X5Bzsu379es2ePVvZ2dmKiopSz549NXPmTLVp08YntQJwZzOnt4MCAAD4CcbIAAAAv0WQAQAAfosgAwAA/BZBBgAA+C2CDAAA8FsEGQAA4Lca/TwyDodDmZmZioiIkM1ms7ocAABQC8YY5efnKzk5WQEBNbe7NPogk5mZWWWCLQAA4B/27dunFi1a1Li/0QeZiIgISc4LERkZaXE1AACgNvLy8pSSkuL6O16TRh9kyruTIiMjCTIAAPiZsw0LYbAvAADwWwQZAADgtwgyAADAbzX6MTK1VVZWptLSUqvL8FshISFnvD0OAIC6cN4HGWOMsrKylJOTY3Upfi0gIEBt2rRRSEiI1aUAAM4j532QKQ8x8fHxCgsLY9I8D5RPOnjw4EG1bNmSawgAqDfndZApKytzhZjY2Firy/FrzZs3V2Zmpk6dOqXg4GCrywEAnCfO60EN5WNiwsLCLK7E/5V3KZWVlVlcCQDgfGJpkJk2bZq6dOnimqwuNTVVixcvdu0vKirS2LFjFRsbq/DwcA0fPlzZ2dk+r4OuEO9xDQEAVrA0yLRo0ULPP/+8Nm3apI0bN+r666/XkCFDtH37dknSgw8+qI8//lhz5szR6tWrlZmZqZtuusnKkgEAQANiaZAZPHiwBg4cqPbt2+uiiy7Sc889p/DwcK1du1a5ubl666239PLLL+v6669Xt27dNH36dH311Vdau3atlWU3Sq1bt9aUKVOsLgMAgHPSYMbIlJWVafbs2SosLFRqaqo2bdqk0tJS9e3b13VMx44d1bJlS61Zs8bCSq1ls9nOuEyaNMmj827YsEH33HOPb4sFAKCOWX7X0jfffKPU1FQVFRUpPDxc8+bN0yWXXKL09HSFhIQoOjra7fiEhARlZWXVeL7i4mIVFxe71vPy8uqk7lNlDjmMUUCATUH1OBHcwYMHXa/fe+89TZw4URkZGa5t4eHhrtfGGJWVlSko6Oz/zM2bN/dtoQAA1APLW2Q6dOig9PR0rVu3Tvfdd5/GjBmjb7/91uPzTZ48WVFRUa4lJSXFh9VWyMor0ndZ+TpaUFIn569JYmKia4mKipLNZnOtf/fdd4qIiNDixYvVrVs32e12ffHFF9q1a5eGDBmihIQEhYeHq0ePHlq+fLnbeU/vWrLZbPr3v/+tYcOGKSwsTO3bt9eCBQvq9bsCAHA2lgeZkJAQtWvXTt26ddPkyZPVtWtX/f3vf1diYqJKSkqqzLibnZ2txMTEGs83YcIE5ebmupZ9+/bVuhZjjE6UnKrVcrKkTEWlZTpZUlbr95xpMcZ4egmreOyxx/T8889rx44d6tKliwoKCjRw4EClpaVp8+bN6t+/vwYPHqy9e/ee8TxPP/20brnlFm3dulUDBw7U6NGjdezYMZ/VCQCAtyzvWjqdw+FQcXGxunXrpuDgYKWlpWn48OGSpIyMDO3du1epqak1vt9ut8tut3v02SdLy3TJxKUevddb3z7TT2EhvvnneOaZZ/SrX/3KtR4TE6OuXbu61p999lnNmzdPCxYs0Lhx42o8z+23366RI0dKkv7yl7/o1Vdf1fr169W/f3+f1AkAgLcsDTITJkzQgAED1LJlS+Xn52vWrFlatWqVli5dqqioKN1111166KGHFBMTo8jISD3wwANKTU1V7969rSy7wevevbvbekFBgSZNmqRFixbp4MGDOnXqlE6ePHnWFpkuXbq4Xjdt2lSRkZE6dOhQndQMAIAnLA0yhw4d0m233aaDBw8qKipKXbp00dKlS12tCa+88ooCAgI0fPhwFRcXq1+/fnr99dfrrJ7Q4EB9+0y/Wh2befykjp0oUXxEE8VHetYCdPpn+0rTpk3d1h955BEtW7ZMf/3rX9WuXTuFhobq5ptvVknJmcf3nP6oAZvNJofD4bM6AQDwlqVB5q233jrj/iZNmmjq1KmaOnVqvdRjs9lq3b0TGhKoJqWBahIS6LMuobry5Zdf6vbbb9ewYcMkOVto9uzZY21RAAD4gOWDff3Xz1Py+26Mbp1p37695s6dq/T0dG3ZskWjRo2iZQUA0CgQZDzlR48Wevnll9WsWTNdeeWVGjx4sPr166crrrjC6rIAAPCazfjyvt8GKC8vT1FRUcrNzVVkZKTbvqKiIu3evVtt2rRRkyZNzum8B3JO6mhBseIjmigx6tze2xh5cy0BADjdmf5+V0aLDAAA8FsEGQ9V9Cw16gYtAAAaNIIMAADwWwQZAADgtwgyXqJjCQAA6xBkAACA3yLIAAAAv0WQAQAAfosgAwAA/BZBxkN+9ISCarVu3VpTpkyxugwAALxCkPGUvycZAAAaAYKMt7j/GgAAyxBkvGRFjnnzzTeVnJwsh8Phtn3IkCG68847tWvXLg0ZMkQJCQkKDw9Xjx49tHz5cgsqBQCgbhFkKjNGKims1WIrLZSt9IRspbU7/qzLOTyE/De/+Y2OHj2qlStXurYdO3ZMS5Ys0ejRo1VQUKCBAwcqLS1NmzdvVv/+/TV48GDt3bu3Lq4aAACWCbK6gAal9IT0l+RaHZr48+Izf8qUQprW6tBmzZppwIABmjVrlvr06SNJ+uCDDxQXF6frrrtOAQEB6tq1q+v4Z599VvPmzdOCBQs0btw4X1YNAIClaJHxU6NHj9aHH36o4uJiSdLMmTM1YsQIBQQEqKCgQI888oguvvhiRUdHKzw8XDt27KBFBgDQ6NAiU1lwmLNlpBay8k7qcH6J4sJDlBQV6pvPPgeDBw+WMUaLFi1Sjx499Pnnn+uVV16RJD3yyCNatmyZ/vrXv6pdu3YKDQ3VzTffrJKSEu/rBACgASHIVGaz1bp7R8EBMsFBMsF2KcQHQeYcNWnSRDfddJNmzpypnTt3qkOHDrriiiskSV9++aVuv/12DRs2TJJUUFCgPXv21HuNAADUNYKMHxs9erR+/etfa/v27br11ltd29u3b6+5c+dq8ODBstlsevLJJ6vc4QQAQGPAGBk/dv311ysmJkYZGRkaNWqUa/vLL7+sZs2a6corr9TgwYPVr18/V2sNAACNCS0yHnNO7WvlfHgBAQHKzKw6pqd169ZasWKF27axY8e6rdPVBABoDGiRAQAAfosgAwAA/BZBxls8awkAAMsQZDzlevo1SQYAAKsQZCSZc3jOUTnb2Q85r3hyDQEA8NZ5HWSCg4MlSSdOnLC4Ev9XPmtwYGCgxZUAAM4n5/Xt14GBgYqOjtahQ4ckSWFhYbLZatfWUlpSLHOqRKUlRkVF53UelMPh0OHDhxUWFqagoPP6VwoAUM/O+786iYnOZ1iXh5nayisqVd7JUyq0B+rksZC6KM2vBAQEqGXLlrUOggAA+MJ5H2RsNpuSkpIUHx+v0tLSWr/vna/26D9rMjXo0mQ9dEObOqzQP4SEhCgg4PxumQIA1L/zPsiUCwwMPKfxHUUmUAfyy5R/yvkARwAAUP/4X2gPlXegcLMOAADWIch4iKEgAABYjyDjJVpkAACwDkHGQ+V35xhm9gUAwDIEGS/RIgMAgHUIMh5ijAwAANYjyHiJBhkAAKxDkPGQ7ecbsOlaAgDAOgQZD5V3LTHYFwAA6xBkPMQQGQAArEeQ8RYNMgAAWIYg46GKriUAAGAVS4PM5MmT1aNHD0VERCg+Pl5Dhw5VRkaG2zHXXnutbDab23LvvfdaVHGFisG+RBkAAKxiaZBZvXq1xo4dq7Vr12rZsmUqLS3VDTfcoMLCQrfj7r77bh08eNC1vPjiixZVDAAAGpIgKz98yZIlbuszZsxQfHy8Nm3apKuvvtq1PSwsTImJifVd3hnRtQQAgPUa1BiZ3NxcSVJMTIzb9pkzZyouLk6dO3fWhAkTdOLEiRrPUVxcrLy8PLelLtGzBACAdSxtkanM4XBo/Pjxuuqqq9S5c2fX9lGjRqlVq1ZKTk7W1q1b9cc//lEZGRmaO3duteeZPHmynn766Tqv18YzCgAAsFyDCTJjx47Vtm3b9MUXX7htv+eee1yvL730UiUlJalPnz7atWuXLrzwwirnmTBhgh566CHXel5enlJSUuqsbhpkAACwToMIMuPGjdPChQv12WefqUWLFmc8tlevXpKknTt3Vhtk7Ha77HZ7ndRZWXl7DHctAQBgHUuDjDFGDzzwgObNm6dVq1apTZs2Z31Penq6JCkpKamOqzszBvsCAGA9S4PM2LFjNWvWLH300UeKiIhQVlaWJCkqKkqhoaHatWuXZs2apYEDByo2NlZbt27Vgw8+qKuvvlpdunSxsnQeUQAAQANgaZCZNm2aJOekd5VNnz5dt99+u0JCQrR8+XJNmTJFhYWFSklJ0fDhw/XEE09YUG0NaJIBAMAylnctnUlKSopWr15dT9Wcm/K7lnj6NQAA1mlQ88j4E9cYGXIMAACWIch4iDEyAABYjyDjJVpkAACwDkHGU4yRAQDAcgQZD1VMiGdpGQAAnNcIMh7iUUsAAFiPIOMlGmQAALAOQcZDtp87l+haAgDAOgQZD9G1BACA9QgyXqNJBgAAqxBkPMRdSwAAWI8g4yHXIwqsLQMAgPMaQcZDNh5SAACA5QgyXjrbE7wBAEDdIch4iq4lAAAsR5DxEIN9AQCwHkHGQzYmkgEAwHIEGS/RIAMAgHUIMh6q6FoiygAAYBWCjIfoWQIAwHoEGQ8RZAAAsB5Bxkv0LAEAYB2CjIfKZ/Y1DPcFAMAyBBkP0bUEAID1CDJeomsJAADrEGS8RJABAMA6BBkPlc/syxgZAACsQ5DxEENkAACwHkHGS3QtAQBgHYKMh8rvWiLHAABgHYKMh8rnkSHJAABgHYKMh5hHBgAA6xFkvMRdSwAAWIcg46HyBhkG+wIAYB2CjIcY7AsAgPUIMh5jkAwAAFYjyHjJ0LcEAIBlCDIeomsJAADrEWQ8RMcSAADWI8h4iZ4lAACsQ5DxUMXTrwEAgFUIMh5ydS3RJAMAgGUIMh7iEQUAAFiPIOMl2mMAALAOQcZDrtuvSTIAAFjG0iAzefJk9ejRQxEREYqPj9fQoUOVkZHhdkxRUZHGjh2r2NhYhYeHa/jw4crOzrao4go2lQ/2JckAAGAVS4PM6tWrNXbsWK1du1bLli1TaWmpbrjhBhUWFrqOefDBB/Xxxx9rzpw5Wr16tTIzM3XTTTdZWPXPGCMDAIDlgqz88CVLlritz5gxQ/Hx8dq0aZOuvvpq5ebm6q233tKsWbN0/fXXS5KmT5+uiy++WGvXrlXv3r2tKNsNXUsAAFinQY2Ryc3NlSTFxMRIkjZt2qTS0lL17dvXdUzHjh3VsmVLrVmzptpzFBcXKy8vz22pC+UNMgQZAACs02CCjMPh0Pjx43XVVVepc+fOkqSsrCyFhIQoOjra7diEhARlZWVVe57JkycrKirKtaSkpNRJvUyIBwCA9RpMkBk7dqy2bdum2bNne3WeCRMmKDc317Xs27fPRxW6Y4gMAADWs3SMTLlx48Zp4cKF+uyzz9SiRQvX9sTERJWUlCgnJ8etVSY7O1uJiYnVnstut8tut9d1yS6GviUAACxjaYuMMUbjxo3TvHnztGLFCrVp08Ztf7du3RQcHKy0tDTXtoyMDO3du1epqan1Xa4bZvYFAMB6lrbIjB07VrNmzdJHH32kiIgI17iXqKgohYaGKioqSnfddZceeughxcTEKDIyUg888IBSU1Mtv2PJNY8MDTIAAFjG0iAzbdo0SdK1117rtn369Om6/fbbJUmvvPKKAgICNHz4cBUXF6tfv356/fXX67lSAADQEFkaZGozvqRJkyaaOnWqpk6dWg8V1Z7rEQXctwQAgGUazF1L/oZ5ZAAAsB5BxlMM9gUAwHIEGS/RIAMAgHUIMh6quGuJKAMAgFUIMh6qGOwLAACsQpDxEENkAACwHkHGWzTJAABgGYKMh3j6NQAA1iPIeMg1RobBvgAAWIYg4yHGyAAAYD2CjJdojwEAwDoEGQ9VdC1ZWwcAAOczgozHygf7kmQAALAKQcZDNgbJAABgOYKMl+haAgDAOgQZD5U3yBBkAACwDkHGQzb6lgAAsBxBBgAA+C2CjIcqupboWwIAwCoEGQ+55pGxtgwAAM5rBBkP2XhIAQAAliPIeImeJQAArEOQ8VBF1xJJBgAAqxBkvESLDAAA1iHIeIhpZAAAsB5Bxks0yAAAYB2CjIfK71qiawkAAOsQZDxU0bVEkgEAwCoEGQ8xRgYAAOsRZLxE1xIAANYhyHjINUbG4joAADifEWQ8RNcSAADWI8h4iadfAwBgHYKMh8obZIgxAABYhyDjIdezlkgyAABYhiDjMQbJAABgNYKMlxgjAwCAdQgyHnJ1LVlbBgAA5zWPgsy+ffu0f/9+1/r69es1fvx4vfnmmz4rrKHjCQUAAFjPoyAzatQorVy5UpKUlZWlX/3qV1q/fr0ef/xxPfPMMz4tsKGyMZEMAACW8yjIbNu2TT179pQkvf/+++rcubO++uorzZw5UzNmzPBlfQ0eDTIAAFjHoyBTWloqu90uSVq+fLluvPFGSVLHjh118OBB31XXgLnmkWGwLwAAlvEoyHTq1ElvvPGGPv/8cy1btkz9+/eXJGVmZio2NtanBTZUDPYFAMB6HgWZF154Qf/85z917bXXauTIkerataskacGCBa4up8bOxjwyAABYLsiTN1177bU6cuSI8vLy1KxZM9f2e+65R2FhYT4rzh/QswQAgHU8apE5efKkiouLXSHmp59+0pQpU5SRkaH4+Phan+ezzz7T4MGDlZycLJvNpvnz57vtv/3222Wz2dyW8m4sq1V0LZFkAACwikdBZsiQIXrnnXckSTk5OerVq5f+9re/aejQoZo2bVqtz1NYWKiuXbtq6tSpNR7Tv39/HTx40LW8++67npRcZ2iRAQDAOh51LX399dd65ZVXJEkffPCBEhIStHnzZn344YeaOHGi7rvvvlqdZ8CAARowYMAZj7Hb7UpMTPSkTAAA0Mh51CJz4sQJRURESJI+/fRT3XTTTQoICFDv3r31008/+bTAVatWKT4+Xh06dNB9992no0ePnvH44uJi5eXluS11gbuWAACwnkdBpl27dpo/f7727dunpUuX6oYbbpAkHTp0SJGRkT4rrn///nrnnXeUlpamF154QatXr9aAAQNUVlZW43smT56sqKgo15KSkuKzeiqzkWQAALCcR0Fm4sSJeuSRR9S6dWv17NlTqampkpytM5dffrnPihsxYoRuvPFGXXrppRo6dKgWLlyoDRs2aNWqVTW+Z8KECcrNzXUt+/bt81k9lXHzNQAA1vNojMzNN9+sX/ziFzp48KBrDhlJ6tOnj4YNG+az4k7Xtm1bxcXFaefOnerTp0+1x9jtdtesw/WBu5YAALCOR0FGkhITE5WYmOh6CnaLFi3qfDK8/fv36+jRo0pKSqrTz6kNV88SOQYAAMt41LXkcDj0zDPPKCoqSq1atVKrVq0UHR2tZ599Vg6Ho9bnKSgoUHp6utLT0yVJu3fvVnp6uvbu3auCggI9+uijWrt2rfbs2aO0tDQNGTJE7dq1U79+/Twp26fKZ/YlxwAAYB2PWmQef/xxvfXWW3r++ed11VVXSZK++OILTZo0SUVFRXruuedqdZ6NGzfquuuuc60/9NBDkqQxY8Zo2rRp2rp1q/7zn/8oJydHycnJuuGGG/Tss8/Wa9dRTWwMkgEAwHI248Hjm5OTk/XGG2+4nnpd7qOPPtL999+vAwcO+KxAb+Xl5SkqKkq5ubk+vaMqO69Ivf6SpgCb9OPkQT47LwAAqP3fb4+6lo4dO6aOHTtW2d6xY0cdO3bMk1P6nfIGGbqWAACwjkdBpmvXrnrttdeqbH/ttdfUpUsXr4vyCwz2BQDAch6NkXnxxRc1aNAgLV++3DWHzJo1a7Rv3z598sknPi2wobIxkwwAAJbzqEXmmmuu0ffff69hw4YpJydHOTk5uummm7R9+3b997//9XWNAAAA1fJosG9NtmzZoiuuuOKMjxCob3U12PdIQbG6/3m5JGn35IEVjywAAABeq9PBvnB/RAHjZAAAsAZBBgAA+C2CjIcqdyXRIAMAgDXO6a6lm2666Yz7c3JyvKnFr7h3LRnxPGwAAOrfOQWZqKios+6/7bbbvCrIXzC2FwAA651TkJk+fXpd1eHX6FoCAMAajJHxUOUJ8bhrCQAAaxBkPFWpa8nQJgMAgCUIMh5ijAwAANYjyPgAXUsAAFiDIOMhGmQAALAeQcZDbhPi0SIDAIAlCDIeokUGAADrEWR8gLuWAACwBkHGQ5XvWqJrCQAAaxBkPOQ2IZ6FdQAAcD4jyAAAAL9FkPGQe9cSbTIAAFiBIOMDxBgAAKxBkPEQjygAAMB6BBkfoGcJAABrEGQ8ZHN//DUAALAAQcZDboN9STIAAFiCIOMhhsgAAGA9gowPMEYGAABrEGQ85Pb0awvrAADgfEaQ8VDlriUmxAMAwBoEGQ8xjwwAANYjyPgA7TEAAFiDIOMhtzEyJBkAACxBkPEB5pEBAMAaBBkvME4GAABrEWR8gQYZAAAsQZDxQnmDDDkGAABrEGS8YKNvCQAASxFkfIC7lgAAsAZBxgsVXUskGQAArECQ8UJ5zxItMgAAWIMg4wWbGCMDAICVCDI+QIMMAADWsDTIfPbZZxo8eLCSk5Nls9k0f/58t/3GGE2cOFFJSUkKDQ1V37599cMPP1hTbHVcXUtEGQAArGBpkCksLFTXrl01derUave/+OKLevXVV/XGG29o3bp1atq0qfr166eioqJ6rrR6rsG+5BgAACwRZOWHDxgwQAMGDKh2nzFGU6ZM0RNPPKEhQ4ZIkt555x0lJCRo/vz5GjFiRH2WWi2mkQEAwFoNdozM7t27lZWVpb59+7q2RUVFqVevXlqzZo2FlQEAgIbC0haZM8nKypIkJSQkuG1PSEhw7atOcXGxiouLXet5eXl1U6Aq7lqiawkAAGs02BYZT02ePFlRUVGuJSUlpc4+yzWPDPctAQBgiQYbZBITEyVJ2dnZbtuzs7Nd+6ozYcIE5ebmupZ9+/bVWY0MkQEAwFoNNsi0adNGiYmJSktLc23Ly8vTunXrlJqaWuP77Ha7IiMj3Za6RtcSAADWsHSMTEFBgXbu3Ola3717t9LT0xUTE6OWLVtq/Pjx+vOf/6z27durTZs2evLJJ5WcnKyhQ4daV3Ql5U+/JscAAGANS4PMxo0bdd1117nWH3roIUnSmDFjNGPGDP3hD39QYWGh7rnnHuXk5OgXv/iFlixZoiZNmlhVspuKeWSIMgAAWMFmGvlf4by8PEVFRSk3N9fn3UyXPrVU+cWntOLha9S2ebhPzw0AwPmstn+/G+wYGb/gumsJAABYgSDjBR5RAACAtQgyXrDxjAIAACxFkPEJmmQAALACQcYLrpl9yTEAAFiCIOMF1xgZS6sAAOD8RZDxAmNkAACwFkHGB+haAgDAGgQZL1R0LZFkAACwAkHGCwz2BQDAWgQZrzBGBgAAKxFkfIAWGQAArEGQ8YKra4kxMgAAWIIg4wWetQQAgLUIMgAAwG8RZLzQqOfDO75H+vQJKS/T6koAAKhRkNUF+DPbz51LjbJr6b/DpGM/Sj99Jd29wupqAACoFi0yXmjULTLHfnT+PLDJ2joAADgDgowPcNcSAADWIMh4gbuWAACwFkHGC+VPvybHAABgDYIMAADwWwQZHzD0LQEAYAmCjBcqHlEAAACsQJDxgivIkGQAALAEQcYLNjXiiWQCgq2uAACAsyLI+EQjbJIJJMgAABo+gowXGnXXEi0yAAA/QJDxgmtCPEurqCMBgRWvHQ7r6gAA4AwIMqhe5a6lU0XOn42y6QkA4M8IMl5wzezbGP++B1R6MHrpSendUdLrvaVTxdbVBADAaQgyXqh41lIjTDKOsorXeQekjEXS4e+kQzsqtu/fKP3zamnPF/VfHwAAIsh4pxHffa2ykorX+zdU2l5a8TrtGengFmnGoEbaLAUAaOgIMj7QKP+EO05VvF70UMXrotyK15XH0ez+rO5rAgDgNAQZL1R0LVlaRt2o3CJTWXGlIFM57BzYVLf1AABQDYKMF1yDfRtjm0zlLqTKivIqXp84WvG6/M4mAADqEUHGC412iIzDIZmy6vcVVwoyhZWCTOnJuq0JAIBqEGR8obE1yDiqaY3peY/zZ/kYGWOkE0cq9tMiAwCwAEHGC65HFFhbhu+dPj4mIklqEuV8Xd61VFLgfhwtMgAACwSd/RDUpPzp141usG/l8TFNoqQRsyrmitnwLyk4VGrX1/09tMgAACxAkPGCrbEOknEFGZv0x5+cXzRra8X+r151LpXRIgMAsABdSz7Q6O5aKu8yCgypSGvlXUs1KW+RKTsl/WewNO++uqsPAICfEWR8oNF1LZUP9q084Z098szvKW+RyfzaOTnellk8lwkAUOcIMl6omEemkSmrJsjU1CJTvr08yJw4VrEv/6DvawMAoBKCDKoqDzIBtQgyMRc6f5Z3LeXuq9iXR5ABANStBh1kJk2aJJvN5rZ07NjR6rJcGu3TryuPkSlnj6j+2Nifg0x5i0zO3op9+Zm+rw0AgEoa/F1LnTp10vLly13rQUENp+RGO49M+TOUKncthcU6x8mUnpQSL3WOhZGqtshUDjJ5BBkAQN1qOKmgBkFBQUpMTLS6jGo13tuvy1tkKgWZwGDp91skW4A0v9IdSZVbZD57Sfp2fsU+upYAAHWsQXctSdIPP/yg5ORktW3bVqNHj9bevXvP/qb61tiaZFyDfUPct4fFSKHRUmizim0xbZ0/i3KkFX92P56uJQBAHWvQQaZXr16aMWOGlixZomnTpmn37t365S9/qfz8/BrfU1xcrLy8PLelrrhm9rU6yeRlSm9eJ6XPqn6/o0xa8ifp249qdz7XYN8aGuzKu54kKSrlDHXRIgMAqFsNOsgMGDBAv/nNb9SlSxf169dPn3zyiXJycvT+++/X+J7JkycrKirKtaSknOEPrZdcY2SsbpH59EnnmJX5NUxCt+Njae1U6f3banc+Rw0tMuUqP2MpJMx9X3CYdP0Tztd5B2r3eQAAeKhBB5nTRUdH66KLLtLOnTtrPGbChAnKzc11Lfv27avxWG81mCEyBdln3l94uOK1w+G+b/9Gact77tuqGyNTWXSritdBoe77UsdJV4xxvs47wKR4AIA61eAH+1ZWUFCgXbt26Xe/+12Nx9jtdtnt9nqsqgG0yJz+tOrTVW5ZKTwsRSRUrP+7j/Nn7IVS0mXSZy9WBJ+agswvH3KGp0tvlgKDnF1Q5d1NyZdJTZtLIRFSSb50fI/UvIMHXwoAgLNr0EHmkUce0eDBg9WqVStlZmbqqaeeUmBgoEaOHGl1aU4NZWbfswWZ4kpjivIPSk3jpIBAqbTSE6uP7nQ+GHL1CxXbAmoIMk2ipGFvVKwHhTpDiyTFXeS8LjFtnOc7uosgAwCoMw26a2n//v0aOXKkOnTooFtuuUWxsbFau3atmjdvbnVpkhrQhHiup1XX4OTxitebZkh/uUDa+r6Uu79i+6liKXOz+/tqGiNzutITFa/LB/+W35Z9bFftzgEAgAcadIvM7NmzrS7hjBrMPDKVW2QcDingtHzqFmSmO3/OvVv63byK7QXZVcez1NS1dDpTVvE6uInzZ/lEeUcJMgCAutOgg4y/aFBdS6UnJHt4xfrKydLGt6p/X06lgdD5WVLRabeq1zbIVKe8RWbTdOeg3y6/lS7o5pxQzxbgTIGu15UWqVJCtNXzejXbGkxaBQBUhyDjhYquJUvLcB/rUlJYEWROHpdWP1/z+yo/TuDQt+7rUu27lsqFxVa8vqi/s5spd5/0w6fOpVGo73Blc/tR4/6GUIMvA2S91+BJzTrLMfVUQ71c9wb273LW71UPNXh8TWpxDluAc5vNdoafPx9X4zEBNbw+27E29893vdaZj429UIqwZhZ+gowXbK5fQguTjDHuXUclBZISpL1rpQ3/PvN7D+2oeL13TdX9lWfwrY3wSr/EYTHS/Wul7xY6a9nxsfN5TMZIxlF1sb5dq5Z+rvP09Oov5QNAXfj1FKn7HZZ8NEHGC9X8v1n9Kz0hlVUa21J+h9Lb/c7+3h9XnXl/8uW1q8EW6Bwnc9Fpn2kPl7qOcC6Dp5z5HMZUhBznhort9bIuD45vaDXV1brOvL8h1mTZ701DrMmietxenu/XpPK209ere4+R83/yyl+f4ecZ9zlO2+ao+Lxq95/pPcZZYk37m0TJKgQZH7C0a+nEMff1ksLav7f0LMde0K1257n3cyljsXTlA7X/7NO5mjsb9I10AIAGhr8aXnA9osDKIk6eFmR2LJBKTlR/bHVi21e8vuYx5zww5Zq1rt05EjpJVz8iBdXvRIQAANAi4wXXQyMbUovMujfcJ8A7my63OAfpnjwm/fIR52CtheOlqJbVD2wEAKABIcj4uxNHq25Ln1l1W3CYcyxL+Qy8t86Vts+Tet7tPqj38lsle4TU6qq6qRcAAB8iyHjD1bVkQZPMujed87OEJ5z92FFznAN3/3l1RZBp18e5nC4w2PkMJQAA/ABjZLzguvm6vnPMqRJp8aPSl1OkPZ+f+dhb/itddIMU3tw5jkWSLh5c5yUCAFAfaJHxgmVDSHIrzch7+Luaj7uwj3TJjRXr3e5wDsxNvLTuagMAoB4RZHyg3juWjv1Y/evThcW4rwcESC17101NAABYgK4lL1TctVTPUebY7qrbml9cdVtoTNVtAAA0IgQZL1jWtVRdK0z/v0hD33DfdnqLDAAAjQxBxgv1HmQKjzifWXT0h6r7olKky0ZKzdpUbKv8EEcAABohxsj4QL31LH36pLRlVvX7msY5f1aeXTciqe5rAgDAQrTIeME1Rqa+hvvWFGICgqQm0VW3t7+hTssBAMBqBBkvuJ615IscU1IoHdxa88kcZVLgz60tTZtLv5tfsS+ld0UxfSZKiV2ku1dIQSE+KAwAgIaLriVPlZ1SZNlxRegcHtB4Ju/9TtqVJo3+UGrft+r+3H1SWbEzzDycIQUESr3ulU4VO8NLuY6DnAsAAOcBgoynPrpfUzPf03OBo2RMqufn+XGV9MFd0okjzvUN/5IuuKLqHUdHdjp/xrR1hhhJGvCC558LAEAjQNeSp8Kcg2tjbfnejZBZ9HBFiJGk75dIf71IKjjsflz5nUpx7bz5NAAAGhWCjKeaOm9tjlWu5xPilZ2SjKPqdkep9MOn7tuO/BxkYtt79lkAADRCdC156ucWmRhbvo558v4jP0jTrpTKSqrfX3ra2BtXiwxBBgCAcrTIeKppc0lSrC3Xs66ljdNrDjGSlLPXff3oLufPWLqWAAAoR5Dx1M8T0MUq37OnRoaEua+P2+i+frzS85RKCqW8A87XBBkAAFzoWvLUz9P/x9jyPHt/4WmDecMT3Nd3fCx9+5EU2ULK2lLxmTw/CQAAF4KMp37uWmpqK1ZAmQdzyeRnVby+arxkj6h6zPu3ua9Xfo4SAAAgyHjMHqFSBStYpQopPn7u788/6Pz5q2elXv+vdk+gTLz03D8HAIBGjDEynrLZlB8YJUkeBpmfW2TaXlPxoMfrn5CaXywNeEnqfpcU1MS5/sDXzn2/fNhHxQMA0DjQIuOFwqBmiik7IlNw6NzeWHZKKn9PeGLF9qsfdS6V1+3hzm6nytsBAIAkgoxXiu3NpGKp7FyCTFmplJcpyUi2QNfdT9WKTPK6RgAAGjOCjBdOhLeS8tYrPHdn7d5QckL65y+loz8fH55Q8dwkAABwzggyXjgZ00nKnKP4woyaDyo8Im193/koAltARYiRpNZX1X2RAAA0YgQZL5QlXCptk1oU75SMqf7Oo08ekbbPq/4Eve6r2wIBAGjkCDJeCEnqpFMmQJHKd868G9XC/YDifClj8WlvipCSujqfmdSiW/0VCwBAI0SQ8UKzqAj9YFroYtteac+X0sljUpMoqeMgKe1Z6cdV0qkiKSJZOnHE+Wylvk9JPe+2unQAABoFgowXYpuGaIajuy4O2CvNu6diR5cR0tbZFevdxkhtrpYObpG631n/hQIA0EgRZLwQ2SRYHzqu1f+aeQqwVXpyZHmIaf1LqfsdUsdfOye9a3WlNYUCANBIMbOvFwICbDoZdoHeKhug4qjTnoOU1FUa87HUeXjFzL0AAMCnCDJeim0aoudO3ap1g5ZJ/+/zih1D36jd85MAAIDH6Fry0gXNQpWRna+9x05IF3WRRsySIpKkhEusLg0AgEaPFhkvtY1rKknadbjAuaHjIOmCK87pHD9k5+vxed/oaEGxr8sDAKBRo0XGSxfGh0uSfjxc6PE5Rv5rnY4UFOtoQYne+B1zywAAUFu0yHjpwubOIONqkTlHxwpLdOTnlpgl27NkjDnj8UWlZfp4S6YWbs306PPOxf7jJ/TP1bu085Bn3w0AgLpGi4yX2jZ3di0dyDmpkyVlCg2p/UMgv957XDe9/pXbtl2HC9QuPqLG9zz0fro++SZLkhQXblfvtrGufdl5RZq5bq9u7d1S8RFNJDmDj8MYhYWc+z/1n+Zt02ffH9bkxd9p6firtf/4Cdls0vUdE875XAAA1AVaZLwU2zREUaHBMkbalpl7Tu9956s9Vba9v3F/jceXOYw++/6Ia/2Tbw66XheVlul//rNRr6b9oIff3yJjjIpPlanflM/U52+r9W1mnk6WlCkz56SeXfitZq77SUWlZVU+o7TMIYfD6Hhhib7cWfFZ//xsl+76z0bdOWOjvt57XC8t/U6bfjquotIyfb33+FlbkgAAqAt+0SIzdepUvfTSS8rKylLXrl31j3/8Qz179rS6LEmSzWZTn4vjNffrA3pnzU/q0TrGte/77HwdyitW77YxCgp0z4xFpWVavuOQJOnft3VXYIBNd8zYoJlrf9I9V7dVXHjVuWe+y8pTQfEp1/o7a35S27im6nxBlP7ffzfpaGGJJOnzH47o1//4Qt8ezFN5vhj46ueKbRqikjKH8ouc5ziSX6Lf923vOt/uI4X69aufq1+nRPVuG6syR0U4mfv1Adfr8lak+Zsz1axpsLYdyNOfh3bWrb1beXQNAQDwlM008P+Vfu+993TbbbfpjTfeUK9evTRlyhTNmTNHGRkZio+PP+v78/LyFBUVpdzcXEVGRtZJjdszczXo1S9ks0n3XnOhHr2hg/71+Y+avPg7SdIt3VvooV91UPMIu9bsOqpF3xzU5r3H9V1WvhIjm+irx66XzSYNetUZPiTp2g7N9cyNndUyNsz1Oe+s2aOJH21XrzYxysjOV86JUrc6IuxBap8Qrq/35tSq7sTIJvrij9e5QtazC7/VW1/sdjvmpssv0NzNB6p7exVhIYHq2SZGV7Rspp+OnlC/Tgm6oVNird4LAEBltf373eCDTK9evdSjRw+99tprkiSHw6GUlBQ98MADeuyxx876/voIMpL03KJv9a/PnSGgZUyYc16ZswgMsOnF4V00vJvzqdk7DxXo5je+cgWUCHuQbruylbLzirU9M087fg454/u218BLk7Ts22x9sGm/dh8pVEzTEC0df7WaR9i1Yc8xfbhpv2Zv2CebTXrhpi5qFRumtT8eU0lZmYZf0UI3v7FGxwpLFBUarN5tY3T1Rc31+LxtbvXFhYdoxSPX6vq/rtKRghK1jg3Tc8Mu1U9HT+j77HzN+GqPWseGac/R6r9rSGCAXry5i0JDAnVh86ZqElz78UMAAP8RHRaicLtvO3kaRZApKSlRWFiYPvjgAw0dOtS1fcyYMcrJydFHH31U5T3FxcUqLq6YjyUvL08pKSl1HmQkaf7mA3pkzhad+rlL5qbLL1BoSKBmrtvrOiY6LFgDOiepTVyYUtvG6dIWUW7n2H/8hNb9eEz/t+4nba6mZSWmaYg+GnuVUmKcLTXFp8q0aOtBdWkRVWWQ8PbMXB0vLNUv2sdVOc9/1+zRs4t2qOSUo8q+Fs1CJUl/GnixBl6apLQd2dr403GNva6d6xfVGKP1u4/pkuRIvbDkO81ev0/9Oydq8bYsty4pAEDj95dhl2pUr5Y+PWejCDKZmZm64IIL9NVXXyk1NdW1/Q9/+INWr16tdevWVXnPpEmT9PTTT1fZXh9BRnK2qizZdlCt45pqYOckSdKh/GKVljmUmXNSl7dsppCgs4+xLi1zaOban5S+L0eJUaGKCw/RrsOFuusXbdTu57lrvFVyyqFvD+bp35//qH3HTigyNFj9OiWe81gXh8Mov/iUokKD9fXe4yo55VCbuKZ66P105RedksMY/Xi4kIADAI3UM0M66bc9CDJVeBJkrGyRAQAAvlHbINOg71qKi4tTYGCgsrOz3bZnZ2crMbH6QaR2u112O0+bBgDgfNCg55EJCQlRt27dlJaW5trmcDiUlpbm1kIDAADOTw26RUaSHnroIY0ZM0bdu3dXz549NWXKFBUWFuqOO+6wujQAAGCxBh9kfvvb3+rw4cOaOHGisrKydNlll2nJkiVKSGCafAAAzncNerCvL9TXPDIAAMB3avv3u0GPkQEAADgTggwAAPBbBBkAAOC3CDIAAMBvEWQAAIDfIsgAAAC/RZABAAB+iyADAAD8FkEGAAD4rQb/iAJvlU9cnJeXZ3ElAACgtsr/bp/tAQSNPsjk5+dLklJSUiyuBAAAnKv8/HxFRUXVuL/RP2vJ4XAoMzNTERERstlsPjtvXl6eUlJStG/fPp7hVMe41vWD61x/uNb1g+tcP+rqOhtjlJ+fr+TkZAUE1DwSptG3yAQEBKhFixZ1dv7IyEj+A6knXOv6wXWuP1zr+sF1rh91cZ3P1BJTjsG+AADAbxFkAACA3yLIeMhut+upp56S3W63upRGj2tdP7jO9YdrXT+4zvXD6uvc6Af7AgCAxosWGQAA4LcIMgAAwG8RZAAAgN8iyAAAAL9FkPHQ1KlT1bp1azVp0kS9evXS+vXrrS7Jr3z22WcaPHiwkpOTZbPZNH/+fLf9xhhNnDhRSUlJCg0NVd++ffXDDz+4HXPs2DGNHj1akZGRio6O1l133aWCgoJ6/BYN3+TJk9WjRw9FREQoPj5eQ4cOVUZGhtsxRUVFGjt2rGJjYxUeHq7hw4crOzvb7Zi9e/dq0KBBCgsLU3x8vB599FGdOnWqPr9KgzZt2jR16dLFNSFYamqqFi9e7NrPNa4bzz//vGw2m8aPH+/axrX2jUmTJslms7ktHTt2dO1vUNfZ4JzNnj3bhISEmLffftts377d3H333SY6OtpkZ2dbXZrf+OSTT8zjjz9u5s6daySZefPmue1//vnnTVRUlJk/f77ZsmWLufHGG02bNm3MyZMnXcf079/fdO3a1axdu9Z8/vnnpl27dmbkyJH1/E0atn79+pnp06ebbdu2mfT0dDNw4EDTsmVLU1BQ4Drm3nvvNSkpKSYtLc1s3LjR9O7d21x55ZWu/adOnTKdO3c2ffv2NZs3bzaffPKJiYuLMxMmTLDiKzVICxYsMIsWLTLff/+9ycjIMH/6059McHCw2bZtmzGGa1wX1q9fb1q3bm26dOlifv/737u2c61946mnnjKdOnUyBw8edC2HDx927W9I15kg44GePXuasWPHutbLyspMcnKymTx5soVV+a/Tg4zD4TCJiYnmpZdecm3LyckxdrvdvPvuu8YYY7799lsjyWzYsMF1zOLFi43NZjMHDhyot9r9zaFDh4wks3r1amOM87oGBwebOXPmuI7ZsWOHkWTWrFljjHGGzoCAAJOVleU6Ztq0aSYyMtIUFxfX7xfwI82aNTP//ve/ucZ1ID8/37Rv394sW7bMXHPNNa4gw7X2naeeesp07dq12n0N7TrTtXSOSkpKtGnTJvXt29e1LSAgQH379tWaNWssrKzx2L17t7KystyucVRUlHr16uW6xmvWrFF0dLS6d+/uOqZv374KCAjQunXr6r1mf5GbmytJiomJkSRt2rRJpaWlbte6Y8eOatmypdu1vvTSS5WQkOA6pl+/fsrLy9P27dvrsXr/UFZWptmzZ6uwsFCpqalc4zowduxYDRo0yO2aSvw++9oPP/yg5ORktW3bVqNHj9bevXslNbzr3OgfGulrR44cUVlZmds/jiQlJCTou+++s6iqxiUrK0uSqr3G5fuysrIUHx/vtj8oKEgxMTGuY+DO4XBo/Pjxuuqqq9S5c2dJzusYEhKi6Ohot2NPv9bV/VuU74PTN998o9TUVBUVFSk8PFzz5s3TJZdcovT0dK6xD82ePVtff/21NmzYUGUfv8++06tXL82YMUMdOnTQwYMH9fTTT+uXv/yltm3b1uCuM0EGOE+MHTtW27Zt0xdffGF1KY1Shw4dlJ6ertzcXH3wwQcaM2aMVq9ebXVZjcq+ffv0+9//XsuWLVOTJk2sLqdRGzBggOt1ly5d1KtXL7Vq1Urvv/++QkNDLaysKrqWzlFcXJwCAwOrjM7Ozs5WYmKiRVU1LuXX8UzXODExUYcOHXLbf+rUKR07dox/h2qMGzdOCxcu1MqVK9WiRQvX9sTERJWUlCgnJ8ft+NOvdXX/FuX74BQSEqJ27dqpW7dumjx5srp27aq///3vXGMf2rRpkw4dOqQrrrhCQUFBCgoK0urVq/Xqq68qKChICQkJXOs6Eh0drYsuukg7d+5scL/TBJlzFBISom7duiktLc21zeFwKC0tTampqRZW1ni0adNGiYmJbtc4Ly9P69atc13j1NRU5eTkaNOmTa5jVqxYIYfDoV69etV7zQ2VMUbjxo3TvHnztGLFCrVp08Ztf7du3RQcHOx2rTMyMrR37163a/3NN9+4Bcdly5YpMjJSl1xySf18ET/kcDhUXFzMNfahPn366JtvvlF6erpr6d69u0aPHu16zbWuGwUFBdq1a5eSkpIa3u+0T4cOnydmz55t7Ha7mTFjhvn222/NPffcY6Kjo91GZ+PM8vPzzebNm83mzZuNJPPyyy+bzZs3m59++skY47z9Ojo62nz00Udm69atZsiQIdXefn355ZebdevWmS+++MK0b9+e269Pc99995moqCizatUqt9soT5w44Trm3nvvNS1btjQrVqwwGzduNKmpqSY1NdW1v/w2yhtuuMGkp6ebJUuWmObNm3O7aiWPPfaYWb16tdm9e7fZunWreeyxx4zNZjOffvqpMYZrXJcq37VkDNfaVx5++GGzatUqs3v3bvPll1+avn37mri4OHPo0CFjTMO6zgQZD/3jH/8wLVu2NCEhIaZnz55m7dq1VpfkV1auXGkkVVnGjBljjHHegv3kk0+ahIQEY7fbTZ8+fUxGRobbOY4ePWpGjhxpwsPDTWRkpLnjjjtMfn6+Bd+m4aruGksy06dPdx1z8uRJc//995tmzZqZsLAwM2zYMHPw4EG38+zZs8cMGDDAhIaGmri4OPPwww+b0tLSev42Ddedd95pWrVqZUJCQkzz5s1Nnz59XCHGGK5xXTo9yHCtfeO3v/2tSUpKMiEhIeaCCy4wv/3tb83OnTtd+xvSdbYZY4xv23gAAADqB2NkAACA3yLIAAAAv0WQAQAAfosgAwAA/BZBBgAA+C2CDAAA8FsEGQAA4LcIMgDOOzabTfPnz7e6DAA+QJABUK9uv/122Wy2Kkv//v2tLg2AHwqyugAA55/+/ftr+vTpbtvsdrtF1QDwZ7TIAKh3drtdiYmJbkuzZs0kObt9pk2bpgEDBig0NFRt27bVBx984Pb+b775Rtdff71CQ0MVGxure+65RwUFBW7HvP322+rUqZPsdruSkpI0btw4t/1HjhzRsGHDFBYWpvbt22vBggV1+6UB1AmCDIAG58knn9Tw4cO1ZcsWjR49WiNGjNCOHTskSYWFherXr5+aNWumDRs2aM6cOVq+fLlbUJk2bZrGjh2re+65R998840WLFigdu3auX3G008/rVtuuUVbt27VwIEDNXr0aB07dqxevycAH/D5YygB4AzGjBljAgMDTdOmTd2W5557zhjjfGL3vffe6/aeXr16mfvuu88YY8ybb75pmjVrZgoKClz7Fy1aZAICAkxWVpYxxpjk5GTz+OOP11iDJPPEE0+41gsKCowks3jxYp99TwD1gzEyAOrdddddp2nTprlti4mJcb1OTU1125eamqr09HRJ0o4dO9S1a1c1bdrUtf+qq66Sw+FQRkaGbDabMjMz1adPnzPW0KVLF9frpk2bKjIyUocOHfL0KwGwCEEGQL1r2rRpla4eXwkNDa3VccHBwW7rNptNDoejLkoCUIcYIwOgwVm7dm2V9YsvvliSdPHFF2vLli0qLCx07f/yyy8VEBCgDh06KCIiQq1bt1ZaWlq91gzAGrTIAKh3xcXFysrKctsWFBSkuLg4SdKcOXPUvXt3/eIXv9DMmTO1fv16vfXWW5Kk0aNH66mnntKYMWM0adIkHT58WA888IB+97vfKSEhQZI0adIk3XvvvYqPj9eAAQOUn5+vL7/8Ug888ED9flEAdY4gA6DeLVmyRElJSW7bOnTooO+++06S846i2bNn6/7771dSUpLeffddXXLJJZKksLAwLV26VL///e/Vo0cPhYWFafjw4Xr55Zdd5xozZoyKior0yiuv6JFHHlFcXJxuvvnm+vuCAOqNzRhjrC4CAMrZbDbNmzdPQ4cOtboUAH6AMTIAAMBvEWQAAIDfYowMgAaF3m4A54IWGQAA4LcIMgAAwG8RZAAAgN8iyAAAAL9FkAEAAH6LIAMAAPwWQQYAAPgtggwAAPBbBBkAAOC3/j+dBfxstPXcaQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.history['loss'])\n",
    "plt.plot(history.history['val_loss'])\n",
    "plt.title('Model loss')\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'val'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8621d2a6-1768-4ccf-b7c3-1c13ff59dadd",
   "metadata": {},
   "source": [
    "## 六、保存模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d5cc355a-a12f-4077-8a9d-a3f2708b47dd",
   "metadata": {},
   "outputs": [],
   "source": [
    "model.save(\"wandModel.h5\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fff13381-63b1-487f-b813-00851c635ee0",
   "metadata": {},
   "source": [
    "## 七、读取模型测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "59ade94d-dcad-421d-ae42-e5447507a518",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "19/19 [==============================] - 0s 9ms/step - loss: 5.3555 - accuracy: 0.9125\n",
      "Model loss is 5.355495452880859\n",
      "Model accuracy is 0.9125214219093323\n"
     ]
    }
   ],
   "source": [
    "harModel=load_model(\"wandModel.h5\")\n",
    "\n",
    "preds =harModel.evaluate(x = test_data, y = test_label)\n",
    "print (\"Model loss is\",preds[0])\n",
    "print (\"Model accuracy is\",preds[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cec8d1fe-16ee-4337-a1d9-4774d46719c2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "krs",
   "language": "python",
   "name": "krs"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.17"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
